From b3d5c9836ed71041940fa4ab4827f1c15008ee74 Mon Sep 17 00:00:00 2001 From: Saeid Zareie Date: Mon, 27 Jan 2025 13:18:30 +0330 Subject: [PATCH 1/3] feat: adding dev support for payload extraction --- packages/nuxt/src/app/plugins/payload.client.ts | 6 ++---- packages/nuxt/src/core/nuxt.ts | 4 ++-- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 +++- 3 files changed, 7 insertions(+), 7 deletions(-) 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 e3d7f1bdfb..3c8f9551b4 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -591,7 +591,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')) } @@ -711,7 +711,7 @@ 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) { + if (nuxt.options.experimental.payloadExtraction) { addPlugin(resolve(nuxt.options.appDir, 'plugins/payload.client')) } diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 7be579a7b3..c4d66ef342 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 Date: Mon, 27 Jan 2025 14:10:38 +0330 Subject: [PATCH 2/3] fix: removed duplicate plugin addition --- packages/nuxt/src/core/nuxt.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 3c8f9551b4..99da02c5c7 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -711,10 +711,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.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'))) { From 56a84a1fe407f8bb090cb410e9fa612edc5d114c Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:43:27 +0000 Subject: [PATCH 3/3] [autofix.ci] apply automated fixes --- packages/nuxt/test/app.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/nuxt/test/app.test.ts b/packages/nuxt/test/app.test.ts index 40ba3b75bf..0404a08137 100644 --- a/packages/nuxt/test/app.test.ts +++ b/packages/nuxt/test/app.test.ts @@ -39,10 +39,6 @@ describe('resolveApp', () => { }, ], "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],