From 077407297bc919cf829aaf60b4236a326c49d436 Mon Sep 17 00:00:00 2001 From: pimlie Date: Sat, 9 Mar 2019 20:41:27 +0100 Subject: [PATCH] chore: improve build config --- scripts/rollup.config.js | 103 +++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 43 deletions(-) diff --git a/scripts/rollup.config.js b/scripts/rollup.config.js index 7e38a81..830b63c 100644 --- a/scripts/rollup.config.js +++ b/scripts/rollup.config.js @@ -4,6 +4,7 @@ import json from 'rollup-plugin-json' import babel from 'rollup-plugin-babel' import buble from 'rollup-plugin-buble' import { terser } from 'rollup-plugin-terser' +import defaultsDeep from 'lodash/defaultsDeep' const pkg = require('../package.json') @@ -14,48 +15,64 @@ const banner = `/** */ `.replace(/ {4}/gm, '').trim() -const baseConfig = { - input: 'src/browser.js', - output: { - file: pkg.web, - format: 'umd', - name: 'VueMeta', - sourcemap: false, - banner - }, - plugins: [ - json(), - nodeResolve(), - commonjs(), - /*buble({ - objectAssign: 'Object.assign' - }),*/ - ] +function rollupConfig({ + plugins = [], + ...config + }) { + + return defaultsDeep({}, config, { + input: 'src/browser.js', + output: { + name: 'VueMeta', + format: 'umd', + sourcemap: false, + banner + }, + plugins: [ + json(), + nodeResolve() + ].concat(plugins), + }) } -export default [{ - ...baseConfig, -}, { - ...baseConfig, - output: { - ...baseConfig.output, - file: pkg.web.replace('.js', '.min.js'), - }, - plugins: [ - ...baseConfig.plugins, - babel({ - runtimeHelpers: true, - presets: ['@nuxt/babel-preset-app'] - }), - terser() - ] -}, { - ...baseConfig, - input: 'src/index.js', - output: { - ...baseConfig.output, - file: pkg.main, - format: 'cjs' - }, - external: Object.keys(pkg.dependencies) -}] +const babelConfig = { + runtimeHelpers: true, + exclude : 'node_modules/**', + presets: [['@nuxt/babel-preset-app', { + // useBuiltIns: 'usage', + // target: { ie: 9 } + }]] +} + +export default [ + rollupConfig({ + output: { + file: pkg.web, + }, + plugins: [ + babel(babelConfig), + commonjs() + ] + }), + rollupConfig({ + output: { + file: pkg.web.replace('.js', '.min.js'), + }, + plugins: [ + babel(babelConfig), + commonjs(), + terser() + ] + }), + rollupConfig({ + input: 'src/index.js', + output: { + file: pkg.main, + format: 'cjs' + }, + plugins: [ + commonjs() + ], + external: Object.keys(pkg.dependencies) + }) +]