diff options
Diffstat (limited to 'history/rollup.config.js')
-rw-r--r-- | history/rollup.config.js | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/history/rollup.config.js b/history/rollup.config.js new file mode 100644 index 0000000..575cbdc --- /dev/null +++ b/history/rollup.config.js @@ -0,0 +1,104 @@ +import babel from 'rollup-plugin-babel'; +import nodeResolve from 'rollup-plugin-node-resolve'; +import commonjs from 'rollup-plugin-commonjs'; +import replace from 'rollup-plugin-replace'; +import { sizeSnapshot } from 'rollup-plugin-size-snapshot'; +import { uglify } from 'rollup-plugin-uglify'; + +import pkg from './package.json'; + +const input = './modules/index.js'; +const globalName = 'History'; + +function external(id) { + return !id.startsWith('.') && !id.startsWith('/'); +} + +const cjs = [ + { + input, + output: { file: `cjs/${pkg.name}.js`, format: 'cjs' }, + external, + plugins: [ + babel({ exclude: /node_modules/ }), + replace({ 'process.env.NODE_ENV': JSON.stringify('development') }) + ] + }, + { + input, + output: { file: `cjs/${pkg.name}.min.js`, format: 'cjs' }, + external, + plugins: [ + babel({ exclude: /node_modules/ }), + replace({ 'process.env.NODE_ENV': JSON.stringify('production') }), + uglify() + ] + } +]; + +const esm = [ + { + input, + output: { file: `esm/${pkg.name}.js`, format: 'esm' }, + external, + plugins: [ + babel({ + exclude: /node_modules/, + runtimeHelpers: true, + plugins: [['@babel/transform-runtime', { useESModules: true }]] + }), + sizeSnapshot() + ] + } +]; + +const umd = [ + { + input, + output: { file: `umd/${pkg.name}.js`, format: 'umd', name: globalName }, + plugins: [ + babel({ + exclude: /node_modules/, + runtimeHelpers: true, + plugins: [['@babel/transform-runtime', { useESModules: true }]] + }), + nodeResolve(), + commonjs({ include: /node_modules/ }), + replace({ 'process.env.NODE_ENV': JSON.stringify('development') }), + sizeSnapshot() + ] + }, + { + input, + output: { file: `umd/${pkg.name}.min.js`, format: 'umd', name: globalName }, + plugins: [ + babel({ + exclude: /node_modules/, + runtimeHelpers: true, + plugins: [['@babel/transform-runtime', { useESModules: true }]] + }), + nodeResolve(), + commonjs({ include: /node_modules/ }), + replace({ 'process.env.NODE_ENV': JSON.stringify('production') }), + sizeSnapshot(), + uglify() + ] + } +]; + +let config; +switch (process.env.BUILD_ENV) { + case 'cjs': + config = cjs; + break; + case 'esm': + config = esm; + break; + case 'umd': + config = umd; + break; + default: + config = cjs.concat(esm).concat(umd); +} + +export default config; |