import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import terser from '@rollup/plugin-terser'; import dts from 'rollup-plugin-dts'; import serve from 'rollup-plugin-serve'; import livereload from 'rollup-plugin-livereload'; const isDev = process.env.ROLLUP_WATCH; const isProd = process.env.NODE_ENV === 'production'; const baseConfig = { input: 'src/index.js', plugins: [ resolve(), commonjs(), ], }; const devPlugins = isDev ? [ serve({ open: true, contentBase: ['site', 'dist'], port: 3001, }), livereload({ watch: ['src', 'site'], }), ] : []; const prodPlugins = isProd ? [ terser({ compress: { drop_console: true, drop_debugger: true, pure_funcs: ['console.log', 'console.warn'], }, format: { comments: false, }, }), ] : []; export default [ { ...baseConfig, output: { file: 'dist/metona-editor.js', format: 'umd', name: 'MeEditor', exports: 'named', sourcemap: !isProd, globals: {}, }, plugins: [ ...baseConfig.plugins, ...devPlugins, ...prodPlugins, ], }, { ...baseConfig, output: { file: 'dist/metona-editor.esm.js', format: 'es', exports: 'named', sourcemap: !isProd, }, plugins: [ ...baseConfig.plugins, ...prodPlugins, ], }, { ...baseConfig, output: { file: 'dist/metona-editor.cjs.js', format: 'cjs', exports: 'named', sourcemap: !isProd, }, plugins: [ ...baseConfig.plugins, ...prodPlugins, ], }, { ...baseConfig, output: { file: 'dist/metona-editor.min.js', format: 'umd', name: 'MeEditor', exports: 'named', sourcemap: false, globals: {}, }, plugins: [ ...baseConfig.plugins, terser({ compress: { drop_console: true, drop_debugger: true, pure_funcs: ['console.log', 'console.warn'], passes: 2, }, format: { comments: false, }, mangle: { toplevel: true, }, }), ], }, { input: 'types/index.d.ts', output: { file: 'dist/metona-editor.d.ts', format: 'es', }, plugins: [dts()], }, ];