From 093763f12ed8e0b4f6ca2a9a38bf681c40b88a89 Mon Sep 17 00:00:00 2001 From: Lars den Bakker Date: Tue, 4 Aug 2020 18:52:10 +0200 Subject: [PATCH] feat(building-rollup): avoid helper chunk in modern build --- .../src/babel/babel-configs.js | 19 +++++++++++++++++++ .../building-rollup/src/createBasicConfig.js | 13 ++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/packages/building-rollup/src/babel/babel-configs.js b/packages/building-rollup/src/babel/babel-configs.js index 66bcd243..a5bd29e0 100644 --- a/packages/building-rollup/src/babel/babel-configs.js +++ b/packages/building-rollup/src/babel/babel-configs.js @@ -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 }], diff --git a/packages/building-rollup/src/createBasicConfig.js b/packages/building-rollup/src/createBasicConfig.js index 6049a17a..44145fd1 100644 --- a/packages/building-rollup/src/createBasicConfig.js +++ b/packages/building-rollup/src/createBasicConfig.js @@ -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),