From 1efa318efc3ed3b0911508ff7788b2ec21f3fa0f Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 15 Sep 2022 09:02:13 +0200 Subject: [PATCH 1/3] fix(nuxt): disable payload extraction for spa generated pages --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index e9091837935..c09a8695ed5 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -139,7 +139,7 @@ export default defineRenderHandler(async (event) => { } // Whether we are prerendering route - const payloadURL = process.env.prerender ? joinURL(url, '_payload.js') : undefined + const payloadURL = (process.env.prerender && !ssrContext.noSSR) ? joinURL(url, '_payload.js') : undefined if (process.env.prerender) { ssrContext.payload.prerenderedAt = Date.now() } @@ -209,7 +209,7 @@ export default defineRenderHandler(async (event) => { bodyAppend: normalizeChunks([ process.env.NUXT_NO_SCRIPTS ? undefined - : (process.env.prerender + : ((process.env.prerender && !ssrContext.noSSR) ? `` : `` ), From b3ebbf1372bdb823574ff857cf3098a16ac255ac Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 15 Sep 2022 09:30:01 +0200 Subject: [PATCH 2/3] improve `noSSR` in ssrContext to handle NUXT_NO_SSR --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index c09a8695ed5..b0f75c0a5d3 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -106,7 +106,7 @@ const getSPARenderer = lazyCachedFunction(async () => { const PAYLOAD_CACHE = process.env.prerender ? new Map() : null // TODO: Use LRU cache const PAYLOAD_URL_RE = /\/_payload(\.[a-zA-Z0-9]+)?.js(\?.*)?$/ -const NO_SSR_ROUTES = new Set(['/index.html', '/200.html', '/404.html']) +const SPA_ROUTES = new Set(['/index.html', '/200.html', '/404.html']) export default defineRenderHandler(async (event) => { // Whether we're rendering an error page @@ -132,7 +132,10 @@ export default defineRenderHandler(async (event) => { req: event.req, res: event.res, runtimeConfig: useRuntimeConfig() as NuxtSSRContext['runtimeConfig'], - noSSR: !!(event.req.headers['x-nuxt-no-ssr']) || (process.env.prerender ? NO_SSR_ROUTES.has(url) : false), + noSSR: + !!(process.env.NUXT_NO_SSR) || + !!(event.req.headers['x-nuxt-no-ssr']) || + (process.env.prerender ? SPA_ROUTES.has(url) : false), error: !!ssrError, nuxt: undefined!, /* NuxtApp */ payload: (ssrError ? { error: ssrError } : {}) as NuxtSSRContext['payload'] From c7df6cb3f5298fbaab57abccc2245d962f6e2080 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 15 Sep 2022 09:30:46 +0200 Subject: [PATCH 3/3] update var name --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index b0f75c0a5d3..561eb0f068b 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -106,7 +106,7 @@ const getSPARenderer = lazyCachedFunction(async () => { const PAYLOAD_CACHE = process.env.prerender ? new Map() : null // TODO: Use LRU cache const PAYLOAD_URL_RE = /\/_payload(\.[a-zA-Z0-9]+)?.js(\?.*)?$/ -const SPA_ROUTES = new Set(['/index.html', '/200.html', '/404.html']) +const PRERENDER_NO_SSR_ROUTES = new Set(['/index.html', '/200.html', '/404.html']) export default defineRenderHandler(async (event) => { // Whether we're rendering an error page @@ -135,7 +135,7 @@ export default defineRenderHandler(async (event) => { noSSR: !!(process.env.NUXT_NO_SSR) || !!(event.req.headers['x-nuxt-no-ssr']) || - (process.env.prerender ? SPA_ROUTES.has(url) : false), + (process.env.prerender ? PRERENDER_NO_SSR_ROUTES.has(url) : false), error: !!ssrError, nuxt: undefined!, /* NuxtApp */ payload: (ssrError ? { error: ssrError } : {}) as NuxtSSRContext['payload']