From 4eef63469b86937ed860d828b69a99134e77005e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 9 Aug 2024 17:43:42 +0100 Subject: [PATCH] fix(vite): write dev manifest when `ssr: false` (#28488) --- packages/vite/src/manifest.ts | 19 ++++++++++++++++++- packages/vite/src/server.ts | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/manifest.ts b/packages/vite/src/manifest.ts index 067027513e..15172431fd 100644 --- a/packages/vite/src/manifest.ts +++ b/packages/vite/src/manifest.ts @@ -8,12 +8,29 @@ import { normalizeViteManifest } from 'vue-bundle-renderer' import type { ViteBuildContext } from './vite' export async function writeManifest (ctx: ViteBuildContext) { + // This is only used for ssr: false - when ssr is enabled we use vite-node runtime manifest + const devClientManifest = { + '@vite/client': { + isEntry: true, + file: '@vite/client', + css: [], + module: true, + resourceType: 'script', + }, + [ctx.entry]: { + isEntry: true, + file: ctx.entry, + module: true, + resourceType: 'script', + }, + } + // Write client manifest for use in vue-bundle-renderer const clientDist = resolve(ctx.nuxt.options.buildDir, 'dist/client') const serverDist = resolve(ctx.nuxt.options.buildDir, 'dist/server') const manifestFile = resolve(clientDist, 'manifest.json') - const clientManifest = JSON.parse(readFileSync(manifestFile, 'utf-8')) + const clientManifest = ctx.nuxt.options.dev ? devClientManifest : JSON.parse(readFileSync(manifestFile, 'utf-8')) const buildAssetsDir = withTrailingSlash(withoutLeadingSlash(ctx.nuxt.options.app.buildAssetsDir)) const BASE_RE = new RegExp(`^${escapeRE(buildAssetsDir)}`) diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 6229923ee8..1a9cdac61b 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -148,6 +148,7 @@ export async function buildServer (ctx: ViteBuildContext) { } if (!ctx.nuxt.options.ssr) { + await writeManifest(ctx) await onBuild() return }