-
Notifications
You must be signed in to change notification settings - Fork 4
/
rollup.config.js
123 lines (117 loc) · 2.24 KB
/
rollup.config.js
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import typescript from "@rollup/plugin-typescript";
import resolve from "@rollup/plugin-node-resolve";
import { terser } from "rollup-plugin-terser";
const input = "src/index.ts";
const outDir = "./lib";
const output = `${outDir}/index`;
/** @type {import('rollup').RollupTypescriptOptions} */
const tsOptions = {
tsconfig: "./tsconfig.json",
declaration: true,
declarationDir: ".",
include: [ "src/*.ts", "src/**/*.ts" ],
};
/** @type {import('rollup').RollupOptions} */
const options = {
input,
output: [
{
file: output + ".js",
format: 'esm',
sourcemap: true
},
{
file: output + ".min.js",
format: 'esm',
sourcemap: true,
plugins: [terser()]
},
{
file: output + ".common.js",
format: 'cjs',
sourcemap: true
},
{
name: "scarlett",
file: output + ".umd.js",
format: 'umd',
sourcemap: true
},
{
name: "scarlett",
file: output + ".umd.min.js",
format: 'umd',
sourcemap: true,
plugins: [terser()]
}
],
plugins: [
typescript(tsOptions),
resolve()
],
onwarn(warning, warn) {
if (warning.code === 'CIRCULAR_DEPENDENCY') return;
warn(warning);
}
};
/** @type {import('rollup').RollupOptions} */
const es3Options = {
output: [
{
file: output + ".es3.common.js",
format: 'cjs',
sourcemap: true
},
{
file: output + ".es3.common.min.js",
format: 'cjs',
sourcemap: true,
plugins: [terser()]
}
],
plugins: [
typescript({
...tsOptions,
lib: ["es5", "es6", "dom"],
target: "ES3",
declaration: false
}),
resolve()
]
};
/** @type {import('rollup').RollupOptions} */
const es6Options = {
output: [
{
file: output + ".es6.common.js",
format: 'cjs',
sourcemap: true
},
{
file: output + ".es6.common.min.js",
format: 'cjs',
sourcemap: true,
plugins: [terser()]
}
],
plugins: [
typescript({
...tsOptions,
lib: ["es6", "dom"],
target: "ES6",
declaration: false
}),
resolve()
]
};
export default cliArgs => {
if (cliArgs.es3) {
delete cliArgs.es3;
Object.assign(options, es3Options);
}
if (cliArgs.es6) {
delete cliArgs.es6;
Object.assign(options, es6Options);
}
return options;
};