-
Notifications
You must be signed in to change notification settings - Fork 10
/
rollup.config.js
89 lines (82 loc) · 1.89 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
import babel from 'rollup-plugin-babel';
import uglify from 'rollup-plugin-uglify';
import serve from 'rollup-plugin-serve';
import eslint from 'rollup-plugin-eslint';
const { DEBUG } = process.env;
const uglifySettings = {
compress: {
negate_iife: false,
unsafe_comps: true,
properties: true,
keep_fargs: false,
pure_getters: true,
collapse_vars: true,
unsafe: true,
warnings: false,
sequences: true,
dead_code: true,
drop_debugger: true,
comparisons: true,
conditionals: true,
evaluate: true,
booleans: true,
loops: true,
unused: true,
hoist_funs: true,
if_return: true,
join_vars: true,
drop_console: true,
pure_funcs: ['classCallCheck', 'invariant', 'warning'],
},
output: {
comments: false,
},
mangle: {
toplevel: true,
reserved: ['Unswitch'],
},
};
const input = DEBUG ? './demo/src/index.js' : './src/index.js';
const output = {
file: DEBUG ? './demo/dist/bundle.js' : './dist/unswitch.es.js',
format: 'es',
name: 'Unswitch',
sourcemap: false,
};
const plugins = [
/**
* Verify entry point and all imported files with ESLint.
* @see https://github.com/TrySound/rollup-plugin-eslint
*/
eslint({ throwOnError: true }),
/**
* Convert ES2015 with babel.
* @see https://github.com/rollup/rollup-plugin-babel
*/
babel({
babelrc: false,
presets: [['env', { loose: true, modules: false }]],
plugins: ['external-helpers'],
}),
];
if (DEBUG) {
plugins.push(
/**
* Serve the bundle for local debugging.
* @see https://github.com/thgh/rollup-plugin-serve
*/
serve({
port: 8080,
contentBase: 'demo',
}),
);
} else {
plugins.push(
/**
* Rollup plugin to minify generated bundle.
* @see https://github.com/TrySound/rollup-plugin-uglify
*/
uglify(uglifySettings),
);
}
export default { input, output, plugins };