diff --git a/packages/nuxt/src/app/config.ts b/packages/nuxt/src/app/config.ts index 476f828abf..4a677359cd 100644 --- a/packages/nuxt/src/app/config.ts +++ b/packages/nuxt/src/app/config.ts @@ -54,6 +54,13 @@ export function useAppConfig (): AppConfig { return nuxtApp._appConfig } +export function _replaceAppConfig (newConfig: AppConfig) { + const appConfig = useAppConfig() + + deepAssign(appConfig, newConfig) + deepDelete(appConfig, newConfig) +} + /** * Deep assign the current appConfig with the new one. * diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index d051115569..e6a10a2bbf 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -437,12 +437,12 @@ import { defuFn } from 'defu' const inlineConfig = ${JSON.stringify(nuxt.options.appConfig, null, 2)} /** client **/ -import { updateAppConfig } from '#app/config' +import { _replaceAppConfig } from '#app/config' // Vite - webpack is handled directly in #app/config if (import.meta.dev && !import.meta.nitro && import.meta.hot) { import.meta.hot.accept((newModule) => { - updateAppConfig(newModule.default) + _replaceAppConfig(newModule.default) }) } /** client-end **/