From c141dce81faaf6a4b44a0dfd595ad05742b331eb Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 15 Aug 2022 15:23:43 -0700 Subject: [PATCH] [fix] avoid manifest collisions (#5874) * [fix] avoid manifest collisions * delete manifest at end of build --- .changeset/rare-deers-hunt.md | 5 +++++ packages/kit/src/vite/build/build_server.js | 4 +++- packages/kit/src/vite/build/utils.js | 3 ++- packages/kit/src/vite/index.js | 6 +++++- 4 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 .changeset/rare-deers-hunt.md diff --git a/.changeset/rare-deers-hunt.md b/.changeset/rare-deers-hunt.md new file mode 100644 index 000000000000..7f637cd4eee5 --- /dev/null +++ b/.changeset/rare-deers-hunt.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +[fix] avoid manifest collisions diff --git a/packages/kit/src/vite/build/build_server.js b/packages/kit/src/vite/build/build_server.js index d56d116ae99e..7e3df1a9dc6f 100644 --- a/packages/kit/src/vite/build/build_server.js +++ b/packages/kit/src/vite/build/build_server.js @@ -214,7 +214,9 @@ export async function build_server(options, client) { const { chunks } = await create_build(merged_config); /** @type {import('vite').Manifest} */ - const vite_manifest = JSON.parse(fs.readFileSync(`${output_dir}/server/manifest.json`, 'utf-8')); + const vite_manifest = JSON.parse( + fs.readFileSync(`${output_dir}/server/${vite_config.build.manifest}`, 'utf-8') + ); mkdirp(`${output_dir}/server/nodes`); mkdirp(`${output_dir}/server/stylesheets`); diff --git a/packages/kit/src/vite/build/utils.js b/packages/kit/src/vite/build/utils.js index 9075315f4aa5..35cdc330a750 100644 --- a/packages/kit/src/vite/build/utils.js +++ b/packages/kit/src/vite/build/utils.js @@ -93,7 +93,8 @@ export const get_default_config = function ({ config, input, ssr, outDir }) { base: assets_base(config.kit), build: { cssCodeSplit: true, - manifest: true, + // don't use the default name to avoid collisions with 'static/manifest.json' + manifest: 'vite-manifest.json', outDir, polyfillModulePreload: false, rollupOptions: { diff --git a/packages/kit/src/vite/index.js b/packages/kit/src/vite/index.js index ca03346cf334..9f2f3a196bab 100644 --- a/packages/kit/src/vite/index.js +++ b/packages/kit/src/vite/index.js @@ -167,7 +167,7 @@ function kit() { function client_build_info(assets, chunks) { /** @type {import('vite').Manifest} */ const vite_manifest = JSON.parse( - fs.readFileSync(`${paths.client_out_dir}/manifest.json`, 'utf-8') + fs.readFileSync(`${paths.client_out_dir}/${vite_config.build.manifest}`, 'utf-8') ); const entry_id = posixify(path.relative(cwd, `${runtime_directory}/client/start.js`)); @@ -437,6 +437,10 @@ function kit() { `See ${colors.bold().cyan('https://kit.svelte.dev/docs/adapters')} to learn how to configure your app to run on the platform of your choosing` ); } + + // avoid making the manifest available to users + fs.unlinkSync(`${paths.output_dir}/client/${vite_config.build.manifest}`); + fs.unlinkSync(`${paths.output_dir}/server/${vite_config.build.manifest}`); }, /**