-
Notifications
You must be signed in to change notification settings - Fork 1
/
rollup.config.mjs
46 lines (40 loc) · 1.04 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
import merge from 'deepmerge';
import terser from '@rollup/plugin-terser';
import { default as typescript } from 'rollup-plugin-typescript2';
import fs from 'fs';
const pkg = JSON.parse(fs.readFileSync('package.json'));
const env = process.env.NODE_ENV || 'development';
const baseConfig = {
input: './src/index.ts',
output: {
name: pkg.bundle
},
treeshake: env === 'production',
plugins: [typescript()]
};
const configs = [{
environments: ['production'],
output: {
format: 'cjs',
file: pkg.main,
}
}, {
environments: ['development', 'production'],
output: {
format: 'umd',
file: pkg.browser,
sourcemap: true
},
plugins: env === 'production' ? [terser()] : []
}, {
environments: ['production'],
output: {
format: 'esm',
file: pkg.module
}
}]
.filter(config => config.environments === undefined || config.environments.indexOf(env) > -1)
.map(config => { delete config.environments; return config; })
.map(config => merge(baseConfig, config));
console.log(configs);
export default configs;