-
Notifications
You must be signed in to change notification settings - Fork 30
/
rollup.config.js
39 lines (35 loc) · 951 Bytes
/
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
import babel from 'rollup-plugin-babel';
import { terser } from 'rollup-plugin-terser';
const isBrowser = String(process.env.NODE_ENV).includes('browser');
const targets = isBrowser ? 'ie >= 9' : { node: '0.12' };
const input = 'src/index.js';
const output = isBrowser
? { file: 'browser.js', format: 'cjs', strict: false }
: [
{ file: 'index.js', format: 'cjs', sourcemap: true, strict: false },
{ file: 'index.mjs', format: 'esm', sourcemap: true, strict: false }
];
const plugins = [
babel({
presets: [
['@babel/env', { targets }]
]
})
].concat(isBrowser
? [
trimContentForBrowser(),
terser()
]
: []);
export default { input, output, plugins };
function trimContentForBrowser() {
return {
name: 'trim-content-for-browser',
renderChunk(code) {
const updatedCode = code
.replace(/\s*function polyfill/, '!function')
.replace(/\s*module\.exports\s*=\s*polyfill;\s*/, '(window)');
return updatedCode;
}
};
}