From a1c184a28846991ecbb21cf8af65d1e3ef6b08f7 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sun, 19 May 2024 19:53:20 -0500 Subject: [PATCH] fix(schema): handle dev/test `buildId` in schema (#27274) --- packages/nuxt/src/core/nitro.ts | 3 +-- packages/schema/src/config/common.ts | 7 ++++++- vitest.nuxt.config.ts | 6 +----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 731622ee2b..4a78495f28 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -218,8 +218,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { // Add app manifest handler and prerender configuration if (nuxt.options.experimental.appManifest) { - const buildId = nuxt.options.runtimeConfig.app.buildId ||= - (nuxt.options.dev ? 'dev' : nuxt.options.test ? 'test' : nuxt.options.buildId) + const buildId = nuxt.options.runtimeConfig.app.buildId ||= nuxt.options.buildId const buildTimestamp = Date.now() const manifestPrefix = joinURL(nuxt.options.app.buildAssetsDir, 'builds') diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index 9314460736..944bd5f2c2 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -165,7 +165,12 @@ export default defineUntypedSchema({ * A unique identifier matching the build. This may contain the hash of the current state of the project. */ buildId: { - $resolve: (val: string) => val ?? randomUUID(), + $resolve: async (val: string | undefined, get): Promise => { + if (typeof val === 'string') { return val } + + const [isDev, isTest] = await Promise.all([get('dev') as Promise, get('test') as Promise]) + return isDev ? 'dev' : isTest ? 'test' : randomUUID() + }, }, /** diff --git a/vitest.nuxt.config.ts b/vitest.nuxt.config.ts index 39b38ba316..31e4896d3f 100644 --- a/vitest.nuxt.config.ts +++ b/vitest.nuxt.config.ts @@ -13,14 +13,10 @@ export default defineVitestConfig({ environmentOptions: { nuxt: { overrides: { + buildId: 'override', experimental: { appManifest: process.env.TEST_MANIFEST !== 'manifest-off', }, - runtimeConfig: { - app: { - buildId: 'override', - }, - }, }, }, },