From 264e419343308ebfa81c6c91758930c7f684b7f1 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 19 Dec 2022 15:15:52 -0500 Subject: [PATCH 1/4] fix: emit assets from SSR build (closes #11429) --- packages/vite/src/node/plugins/asset.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index 1e8b6303488fc3..f56c4ab757ce93 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -180,20 +180,6 @@ export function assetPlugin(config: ResolvedConfig): Plugin { } else { return null } - }, - - generateBundle(_, bundle) { - // do not emit assets for SSR build - if (config.command === 'build' && config.build.ssr) { - for (const file in bundle) { - if ( - bundle[file].type === 'asset' && - !file.includes('ssr-manifest.json') - ) { - delete bundle[file] - } - } - } } } } From 743b1a79934ebe2d2ff9b566e927324a63fbc091 Mon Sep 17 00:00:00 2001 From: patak Date: Fri, 23 Dec 2022 15:58:47 +0100 Subject: [PATCH 2/4] chore: format --- packages/vite/src/node/plugins/asset.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index 68412dd453baf0..662b7a2de22f8f 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -182,7 +182,7 @@ export function assetPlugin(config: ResolvedConfig): Plugin { } else { return null } - } + }, } } From 1235fc0d83746c6eef98db5ff0d35d781eaa5d7e Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 3 Jan 2023 12:27:42 -0500 Subject: [PATCH 3/4] remove unused const --- packages/vite/src/node/plugins/asset.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index c211395cbd3f33..ba24dea0ae0eb8 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -23,7 +23,6 @@ export const assetUrlRE = /__VITE_ASSET__([a-z\d]+)__(?:\$_(.*?)__)?/g const rawRE = /(?:\?|&)raw(?:&|$)/ const urlRE = /(\?|&)url(?:&|$)/ -const jsSourceMapRE = /\.[cm]?js\.map$/ const assetCache = new WeakMap>() @@ -183,7 +182,7 @@ export function assetPlugin(config: ResolvedConfig): Plugin { } else { return null } - } + }, } } From 7b8b0f98d85cc56682642189b55ad56d3960154e Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 25 Jan 2023 17:08:27 +0100 Subject: [PATCH 4/4] chore: add build.ssrEmitAssets experimental option --- packages/vite/src/node/build.ts | 7 +++++++ packages/vite/src/node/plugins/asset.ts | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index bbc2f86f8be349..8cdf5b37d7cc17 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -208,6 +208,12 @@ export interface BuildOptions { * directives in production. */ ssrManifest?: boolean | string + /** + * Emit assets during SSR. + * @experimental + * @default false + */ + ssrEmitAssets?: boolean /** * Set to false to disable reporting compressed chunk sizes. * Can slightly improve build speed. @@ -324,6 +330,7 @@ export function resolveBuildOptions( lib: false, ssr: false, ssrManifest: false, + ssrEmitAssets: false, reportCompressedSize: true, chunkSizeWarningLimit: 500, watch: null, diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index ba24dea0ae0eb8..dd73a9e1cd23f5 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -23,6 +23,7 @@ export const assetUrlRE = /__VITE_ASSET__([a-z\d]+)__(?:\$_(.*?)__)?/g const rawRE = /(?:\?|&)raw(?:&|$)/ const urlRE = /(\?|&)url(?:&|$)/ +const jsSourceMapRE = /\.[cm]?js\.map$/ const assetCache = new WeakMap>() @@ -183,6 +184,25 @@ export function assetPlugin(config: ResolvedConfig): Plugin { return null } }, + + generateBundle(_, bundle) { + // do not emit assets for SSR build + if ( + config.command === 'build' && + config.build.ssr && + !config.build.ssrEmitAssets + ) { + for (const file in bundle) { + if ( + bundle[file].type === 'asset' && + !file.endsWith('ssr-manifest.json') && + !jsSourceMapRE.test(file) + ) { + delete bundle[file] + } + } + } + }, } }