feat(building-rollup): avoid helper chunk in modern build

This commit is contained in:
Lars den Bakker
2020-08-04 18:52:10 +02:00
parent aeb07b36e9
commit 093763f12e
2 changed files with 23 additions and 9 deletions

View File

@@ -4,6 +4,25 @@ const { isFalsy } = require('../utils');
const createBabelConfigRollupBuild = ({ developmentMode, rootDir }) => ({
babelHelpers: 'bundled',
compact: true,
presets: [
[
require.resolve('@babel/preset-env'),
{
targets: [
'last 3 Chrome major versions',
'last 3 ChromeAndroid major versions',
'last 3 Firefox major versions',
'last 3 Edge major versions',
'last 3 Safari major versions',
'last 3 iOS major versions',
],
useBuiltIns: false,
shippedProposals: true,
modules: false,
bugfixes: true,
},
],
],
plugins: [
// rollup doesn't support optional chaining yet, so we compile it during input
[require.resolve('@babel/plugin-proposal-optional-chaining'), { loose: true }],

View File

@@ -7,7 +7,6 @@ const { babel, getBabelOutputPlugin } = require('@rollup/plugin-babel');
const merge = require('deepmerge');
const {
createBabelConfigRollupBuild,
babelConfigRollupGenerate,
babelConfigLegacyRollupGenerate,
babelConfigSystemJs,
} = require('./babel/babel-configs');
@@ -42,12 +41,7 @@ function createBasicConfig(userOptions = {}) {
assetFileNames: assetName,
format: 'es',
dir: opts.outputDir,
plugins: [
// build to js supported by modern browsers
getBabelOutputPlugin(babelConfigRollupGenerate),
// create babel-helpers chunk based on es5 build
bundledBabelHelpers({ minify: !developmentMode }),
],
plugins: [],
},
plugins: [
@@ -58,8 +52,7 @@ function createBasicConfig(userOptions = {}) {
},
}),
// build non-standard syntax to standard syntax and other babel optimization plugins
// user plugins are deduped to allow overriding
// run babel, compiling down to latest of modern browsers
dedupedBabelPlugin(
babel,
opts.babel,
@@ -82,6 +75,8 @@ function createBasicConfig(userOptions = {}) {
entryFileNames: `nomodule-${fileName}`,
chunkFileNames: `nomodule-${fileName}`,
assetFileNames: `nomodule-${assetName}`,
// in the legacy build we want to build to es5, but the babel plugin in the input plugins runs for both
// we add output plugins here only for the legacy build to build to es5
plugins: [
// buid to es5
getBabelOutputPlugin(babelConfigLegacyRollupGenerate),