diff --git a/packages/nuxt/src/app/plugins/payload.client.ts b/packages/nuxt/src/app/plugins/payload.client.ts index 48486c1a3e..793effc1b7 100644 --- a/packages/nuxt/src/app/plugins/payload.client.ts +++ b/packages/nuxt/src/app/plugins/payload.client.ts @@ -9,12 +9,10 @@ import { appManifest as isAppManifestEnabled } from '#build/nuxt.config.mjs' export default defineNuxtPlugin({ name: 'nuxt:payload', setup (nuxtApp) { - // TODO: Support dev - if (import.meta.dev) { return } - // Load payload after middleware & once final route is resolved useRouter().beforeResolve(async (to, from) => { - if (to.path === from.path) { return } + // Forcefully load payload in dev mode, to support payload extraction at page refresh. + if (to.path === from.path && !import.meta.dev) { return } const payload = await loadPayload(to.path) if (!payload) { return } Object.assign(nuxtApp.static.data, payload.data) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 0f65e66c1e..40c9958463 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -659,7 +659,7 @@ async function initNuxt (nuxt: Nuxt) { } // Add prerender payload support - if (!nuxt.options.dev && nuxt.options.experimental.payloadExtraction) { + if (nuxt.options.experimental.payloadExtraction) { addPlugin(resolve(nuxt.options.appDir, 'plugins/payload.client')) } @@ -779,10 +779,6 @@ export default defineNuxtPlugin({ nitro.options.replace['process.env.NUXT_PAYLOAD_EXTRACTION'] = String(!!nuxt.options.experimental.payloadExtraction) nitro.options._config.replace!['process.env.NUXT_PAYLOAD_EXTRACTION'] = String(!!nuxt.options.experimental.payloadExtraction) - if (!nuxt.options.dev && nuxt.options.experimental.payloadExtraction) { - addPlugin(resolve(nuxt.options.appDir, 'plugins/payload.client')) - } - // Show compatibility version banner when Nuxt is running with a compatibility version // that is different from the current major version if (!(satisfies(nuxt._version, nuxt.options.future.compatibilityVersion + '.x'))) { diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 4b8d1a792b..55463967f8 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -325,7 +325,9 @@ export default defineRenderHandler(async (event): Promise { }, ], "plugins": [ - { - "mode": "client", - "src": "/packages/nuxt/src/app/plugins/payload.client.ts", - }, { "mode": "client", "src": "/packages/nuxt/src/app/plugins/navigation-repaint.client.ts", @@ -63,6 +59,10 @@ describe('resolveApp', () => { "mode": "client", "src": "/packages/nuxt/src/app/plugins/chunk-reload.client.ts", }, + { + "mode": "client", + "src": "/packages/nuxt/src/app/plugins/payload.client.ts", + }, { "filename": "components.plugin.mjs", "getContents": [Function],