import resolve from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' import replace from '@rollup/plugin-replace' import { terser } from 'rollup-plugin-terser' // 'npm run watch:js' -> 'production' is false // 'npm run build:js' -> 'production' is true const production = !process.env.ROLLUP_WATCH export default { input: 'src/js/app.js', output: [ { file: 'public/js/bundle.js', format: 'module', sourcemap: true } ], plugins: [ // Needed for Vue imports, could use alias plugin but they're not working with resolve plugin // Assuming all the Vue imports are made like: import Vue from 'vue/dist/vue.esm' (vue.esm is made for bundlers) replace({ 'process.env.NODE_ENV': JSON.stringify(production ? 'production' : 'development') }), resolve(), // Tells Rollup how to find imported modules in node_modules commonjs(), // Converts imported modules to ES modules, if necessary production && terser() // Minify, but only in production ] }