From 8d6d8109c45b4b4f9d313b23674fa4fdb220659f Mon Sep 17 00:00:00 2001 From: underfin Date: Sun, 9 May 2021 12:30:28 +0800 Subject: [PATCH] fix: skip asset emit for legacy output fix: #3296 --- packages/plugin-legacy/index.js | 3 +++ packages/vite/src/node/plugins/css.ts | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/packages/plugin-legacy/index.js b/packages/plugin-legacy/index.js index 0ecf2bd67b2ad5..cd847eb3935493 100644 --- a/packages/plugin-legacy/index.js +++ b/packages/plugin-legacy/index.js @@ -219,6 +219,9 @@ function viteLegacyPlugin(options = {}) { // @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 + // inject flag to prevent emit assets for legacy bundle + opts.__vite_legacy = true const needPolyfills = options.polyfills !== false && !Array.isArray(options.polyfills) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index f07a88fed5ac8b..da4c0c12902c49 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -392,6 +392,10 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { }, async generateBundle(opts, bundle) { + // @ts-ignore injected by @vitejs/plugin-legacy + if (opts.__vite_legacy) { + return + } // remove empty css chunks and their imports if (pureCssChunks.size) { const emptyChunkFiles = [...pureCssChunks]