-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrollup.config.js
49 lines (45 loc) · 1.14 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
const glob = require('glob');
const babel = require('rollup-plugin-babel');
const commonjs = require('rollup-plugin-commonjs');
const fingerprint = require('rollup-plugin-fingerprint');
const resolve = require('rollup-plugin-node-resolve');
const { terser } = require('rollup-plugin-terser');
const files = glob.sync('app/javascript/packs/**/*.js');
const plugins = [
resolve(),
commonjs({
namedExports: {
'@rails/activestorage': ['start']
}
}),
babel()
];
if (process.env.NODE_ENV === 'production') {
plugins.push(
terser({
mangle: {
// Works around a Safari 10 bug:
// https://github.com/mishoo/UglifyJS2/issues/1753
safari10: true
}
})
);
}
module.exports = files.map(
file => ({
input: file,
output: {
file: file.replace('app/javascript/packs/', ''),
format: 'iife'
},
plugins: plugins.concat(
fingerprint({
dest: file.replace('app/javascript/packs/', '').replace('.js', '-[hash].js'),
destDir: 'public/packs',
manifest: 'public/packs/manifest.json',
replace: true,
reuseManifest: true
})
)
})
);