-
Notifications
You must be signed in to change notification settings - Fork 1
/
rollup.config.js
executable file
·103 lines (93 loc) · 2.17 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
import { terser } from 'rollup-plugin-terser'
import resolve from '@rollup/plugin-node-resolve'
import builtins from 'rollup-plugin-node-builtins'
import globals from 'rollup-plugin-node-globals'
import commonjs from '@rollup/plugin-commonjs'
import webworkify from 'rollup-plugin-webworkify'
import pkg from './package.json'
// deals with package names like '@user/package'
// so that the package name is 'package' and not '@user/package'
let packageName = pkg.name
if(~packageName.indexOf('/')){
packageName = packageName.split('/')[1]
}
const configurations = [
// UMD
{
input: pkg.entry,
output: {
file: pkg.browser,
name: packageName,
sourcemap: true,
format: 'umd',
},
plugins: [
resolve(),
commonjs({ include: 'node_modules/**' }),
globals(),
builtins(),
webworkify({ pattern: '**/*.worker.js' }),
],
},
// ESMODULE
{
input: pkg.entry,
output: {
file: pkg.module,
name: packageName,
sourcemap: true,
format: 'es',
},
external: [
...Object.keys(pkg.dependencies || {}),
],
plugins: [
resolve(),
commonjs({ include: 'node_modules/**' }),
globals(),
builtins(),
webworkify({ pattern: '**/*.worker.js' }),
],
},
// CJS
{
input: pkg.entry,
output: {
file: pkg.main,
name: packageName,
sourcemap: true,
format: 'cjs',
},
external: [
...Object.keys(pkg.dependencies || {}),
],
plugins: [
resolve(),
commonjs({ include: 'node_modules/**' }),
globals(),
builtins(),
// webworkify({ pattern: '**/*.worker.js' }),
],
},
]
// Adding the minified umd bundle
if (process.env.NODE_ENV === 'production') {
configurations.push(
{
input: pkg.entry,
output: {
file: pkg.browser.replace('.js', '.min.js'),
name: packageName,
sourcemap: false,
format: 'umd',
},
plugins: [
resolve(),
commonjs({ include: 'node_modules/**' }),
globals(),
builtins(),
webworkify({ pattern: '**/*.worker.js' }),
terser()],
})
}
export default configurations