-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrollup.config.mjs
64 lines (54 loc) · 1.55 KB
/
rollup.config.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import _camelCase from 'lodash-es/camelCase.js';
import _upperFirst from 'lodash-es/upperFirst.js';
import typescript from '@rollup/plugin-typescript';
import { terser } from 'rollup-plugin-terser';
const pkgs = [];
[
{name: 'index'},
{name: 'is'},
{name: 'url'},
{name: 'ajax'},
].forEach((pkg) => {
const isCombined = pkg.name === 'index';
const inputPath = `src/${pkg.name}.ts`;
let outputName = `JsUtils`;
let outputFileDir = `dist`;
let outputFileName = `js-utils`;
if (!isCombined) {
outputName += `_${_upperFirst(_camelCase(pkg.name))}`;
outputFileDir += `/${pkg.name}`;
outputFileName += `.${pkg.name}`;
}
pkgs.push({
input: inputPath,
output: [
{
name: outputName,
banner: `/*! ${outputName} ${(new Date()).toISOString()} */\n`,
file: `${outputFileDir}/${outputFileName}.cjs.js`,
format: 'cjs'
},
{
name: outputName,
banner: `/*! ${outputName} ${(new Date()).toISOString()} */\n`,
file: `${outputFileDir}/${outputFileName}.esm.js`,
format: 'esm'
},
{
name: outputName,
banner: `/*! ${outputName} ${(new Date()).toISOString()} */\n`,
file: `${outputFileDir}/${outputFileName}.umd.js`,
format: 'umd'
},
{
name: outputName,
banner: `/*! ${outputName} ${(new Date()).toISOString()} */\n`,
file: `${outputFileDir}/${outputFileName}.umd.min.js`,
format: 'umd',
plugins: [terser()]
}
],
plugins: [typescript()],
});
});
export default pkgs;