/
rollup.config.js
54 lines (52 loc) · 1.69 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
import babel from 'rollup-plugin-babel'
import resolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'
import { uglify } from 'rollup-plugin-uglify'
import scss from 'rollup-plugin-scss'
import postcss from 'postcss'
import assets from 'postcss-assets'
import autoprefixer from 'autoprefixer'
import copy from 'rollup-plugin-copy'
import html from 'rollup-plugin-fill-html'
// `npm run build` -> `production` is true
// `npm run dev` -> `production` is false
const production = !process.env.ROLLUP_WATCH
export default {
input: 'src/scripts/main.js',
output: {
file: 'public/bundle.js',
format: 'iife', // immediately-invoked function expression - suitable for <script> tags
sourcemap: true
},
plugins: [
copy({
'./src/fonts': 'public/fonts',
'./src/images': 'public/images',
'./src/audio': 'public/audio'
// './src/audio'
}),
scss({
output: 'public/bundle.css',
processor: css => postcss([
autoprefixer,
assets({
basePath: 'src/',
loadPaths: ['images', 'fonts'],
relative: '.'
})
])
.process(css)
.then(result => result.css)
}),
resolve(), // tells Rollup how to find date-fns in node_modules
babel({
exclude: 'node_modules/**'
}),
commonjs(), // converts date-fns to ES modules
// production && uglify() // minify, but only in production
html({
template: 'src/index.html',
filename: 'index.html'
})
]
}