import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import babel from '@rollup/plugin-babel'; import { terser } from 'rollup-plugin-terser'; import json from '@rollup/plugin-json'; const commonConfig = { input: 'src/index.js', output: { name: 'index', sourcemap: true, }, plugins: [ resolve({ customResolveOptions: { moduleDirectory: 'node_modules', }, }), babel({ exclude: 'node_modules/**', babelHelpers: 'runtime', }), commonjs(), json(), ], }; // ESM config const esmConfig = Object.assign({}, commonConfig); esmConfig.output = Object.assign({}, commonConfig.output, { file: 'dist/mjs/index.js', format: 'esm', }); // ESM prod config const esmProdConfig = Object.assign({}, esmConfig); esmProdConfig.output = Object.assign({}, esmConfig.output, { file: 'dist/mjs/index.min.js', sourcemap: false, }); esmProdConfig.plugins = [...esmConfig.plugins, terser()]; // CJS config const cjsConfig = Object.assign({}, commonConfig); cjsConfig.output = Object.assign({}, commonConfig.output, { file: 'dist/cjs/index.js', format: 'cjs', }); // CJS prod config const cjsProdConfig = Object.assign({}, cjsConfig); cjsProdConfig.output = Object.assign({}, cjsConfig.output, { file: 'dist/cjs/index.min.js', sourcemap: false, }); cjsProdConfig.plugins = [...cjsConfig.plugins, terser()]; let configurations = []; configurations.push(esmConfig, esmProdConfig, cjsConfig, cjsProdConfig); export default configurations;