diff --git a/packages/plugin-legacy/README.md b/packages/plugin-legacy/README.md index b5c3631ab2ac60..d5e55aa9c663d2 100644 --- a/packages/plugin-legacy/README.md +++ b/packages/plugin-legacy/README.md @@ -27,7 +27,7 @@ export default { } ``` -Terser must be installed because plugin-legacy uses Terser for minification. +If [renderLegacyChunks](#renderlegacychunks) is `true` (default), Terser must be installed because plugin-legacy uses Terser to minify legacy chunks. ```sh npm add -D terser diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index 6d416fe5e96474..daeb28cb34e8e1 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -45,6 +45,11 @@ "terser": "^5.4.0", "vite": "^3.0.0" }, + "peerDependenciesMeta": { + "terser": { + "optional": true + } + }, "devDependencies": { "@babel/core": "^7.18.9", "vite": "workspace:*" diff --git a/packages/plugin-legacy/src/index.ts b/packages/plugin-legacy/src/index.ts index ca79a56f160146..dc2d3a64f7bea7 100644 --- a/packages/plugin-legacy/src/index.ts +++ b/packages/plugin-legacy/src/index.ts @@ -648,7 +648,9 @@ async function buildPolyfillChunk( excludeSystemJS?: boolean ) { let { minify, assetsDir } = buildOptions - minify = minify ? 'terser' : false + if (format === 'iife') { + minify = minify ? 'terser' : false + } const res = await build({ // so that everything is resolved from here root: path.dirname(fileURLToPath(import.meta.url)),