import resolve from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' import replace from '@rollup/plugin-replace' import alias from '@rollup/plugin-alias' import analyze from 'rollup-plugin-analyzer' import vue from 'rollup-plugin-vue' import svg from 'rollup-plugin-svg' import postcss from 'rollup-plugin-postcss' import { version } from './package.json' const isProduction = !process.env.ROLLUP_WATCH process.env.NODE_ENV = isProduction ? 'production' : 'development' export default { input: 'src/app.js', output: [ { file: isProduction ? 'public/js/bundle.temp.js' : 'public/js/bundle.js', format: 'module', sourcemap: !isProduction } ], plugins: [ alias({ entries: [ { find: 'vue', replacement: 'vue/dist/vue.esm' }, { find: '@', replacement: __dirname + '/src' }, { find: '@components', replacement: __dirname + '/src/components' } ] }), // Needed for Vue imports replace({ preventAssignment: true, values: { 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), __VER__: JSON.stringify(version) } }), resolve(), // Tells Rollup how to find imported modules in node_modules commonjs(), // Converts imported modules to ES modules, if necessary svg(), vue(), postcss(), isProduction && analyze({ summaryOnly: true, limit: 15 }) // Show useful information about bundles, only in production ] }