From 7ba0c9f60e147a0039d2607a10c55e4feecd4bee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Fri, 19 Aug 2022 21:58:12 +0900 Subject: [PATCH] refactor(legacy): build polyfill chunk (#9639) --- packages/plugin-legacy/src/index.ts | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/packages/plugin-legacy/src/index.ts b/packages/plugin-legacy/src/index.ts index 387c19a3f1924c..2d3711fd8289c6 100644 --- a/packages/plugin-legacy/src/index.ts +++ b/packages/plugin-legacy/src/index.ts @@ -633,8 +633,6 @@ async function buildPolyfillChunk( plugins: [polyfillsPlugin(imports, excludeSystemJS)], build: { write: false, - // if a value above 'es5' is set, esbuild injects helper functions which uses es2015 features - target: 'es5', minify, assetsDir, rollupOptions: { @@ -646,6 +644,18 @@ async function buildPolyfillChunk( entryFileNames: rollupOutputOptions.entryFileNames } } + }, + // Don't run esbuild for transpilation or minification + // because we don't want to transpile code. + esbuild: false, + optimizeDeps: { + esbuildOptions: { + // If a value above 'es5' is set, esbuild injects helper functions which uses es2015 features. + // This limits the input code not to include es2015+ codes. + // But core-js is the only dependency which includes commonjs code + // and core-js doesn't include es2015+ codes. + target: 'es5' + } } }) const _polyfillChunk = Array.isArray(res) ? res[0] : res @@ -685,21 +695,6 @@ function polyfillsPlugin( (excludeSystemJS ? '' : `import "systemjs/dist/s.min.js";`) ) } - }, - renderChunk(_, __, opts) { - // systemjs includes code that can't be minified down to es5 by esbuild - if (!excludeSystemJS) { - // @ts-ignore avoid esbuild transform on legacy chunks since it produces - // legacy-unsafe code - e.g. rewriting object properties into shorthands - opts.__vite_skip_esbuild__ = true - - // @ts-ignore force terser for legacy chunks. This only takes effect if - // minification isn't disabled, because that leaves out the terser plugin - // entirely. - opts.__vite_force_terser__ = true - } - - return null } } }