From ac16abda0a3f96daa61507bda666ade5867ec909 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 12 Aug 2022 01:10:51 +0800 Subject: [PATCH] fix(legacy): skip esbuild transform for systemjs (#9635) --- packages/plugin-legacy/src/index.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/plugin-legacy/src/index.ts b/packages/plugin-legacy/src/index.ts index ca79a56f160146..0de7b072edbab8 100644 --- a/packages/plugin-legacy/src/index.ts +++ b/packages/plugin-legacy/src/index.ts @@ -710,6 +710,21 @@ 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 } } }