web/rollup.config.js (22 lines of code) (raw):
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import {terser} from 'rollup-plugin-terser';
import * as path from 'path';
// `npm run build` -> `production` is true
// `npm run dev` -> `production` is false
const production = !process.env.ROLLUP_WATCH;
const webOutputDir = path.join(
process.env.WEB_OUTPUT_DIR || 'public',
'bundle.js'
);
export default {
input: 'src/main.js',
output: {
file: webOutputDir,
format: 'iife', // immediately-invoked function expression — suitable for <script> tags
sourcemap: !production,
},
plugins: [
resolve(), // tells Rollup how to find node_modules
commonjs(), // converts to ES modules
production && terser(), // minify, but only in production
],
};