Skip to content
This repository was archived by the owner on Apr 6, 2023. It is now read-only.

Commit 9ee5ca2

Browse files
authored
feat(nuxt): generate spa fallback for nuxt generate (#7507)
1 parent b8cb206 commit 9ee5ca2

File tree

4 files changed

+12
-10
lines changed

4 files changed

+12
-10
lines changed

packages/nuxt/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"knitwork": "^0.1.2",
5959
"magic-string": "^0.26.3",
6060
"mlly": "^0.5.14",
61-
"nitropack": "^0.5.2",
61+
"nitropack": "^0.5.3",
6262
"nuxi": "3.0.0-rc.9",
6363
"ohash": "^0.1.5",
6464
"ohmyfetch": "^0.4.18",

packages/nuxt/src/core/nitro.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ export async function initNitro (nuxt: Nuxt) {
5656
prerender: {
5757
crawlLinks: nuxt.options._generate ? nuxt.options.generate.crawler : false,
5858
routes: ([] as string[])
59-
.concat(nuxt.options._generate ? ['/', ...nuxt.options.generate.routes] : [])
60-
.concat(nuxt.options.ssr === false ? ['/', '/200.html', '/404.html'] : [])
59+
.concat(nuxt.options._generate ? ['/', '/200.html', ...nuxt.options.generate.routes] : [])
60+
.concat(nuxt.options.ssr === false ? ['/index.html', '/200.html', '/404.html'] : [])
6161
},
6262
sourceMap: nuxt.options.sourcemap.server,
6363
externals: {

packages/nuxt/src/core/runtime/nitro/renderer.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ const getSPARenderer = lazyCachedFunction(async () => {
106106
const PAYLOAD_CACHE = process.env.prerender ? new Map() : null // TODO: Use LRU cache
107107
const PAYLOAD_URL_RE = /\/_payload(\.[a-zA-Z0-9]+)?.js(\?.*)?$/
108108

109+
const NO_SSR_ROUTES = new Set(['/index.html', '/200.html', '/404.html'])
110+
109111
export default defineRenderHandler(async (event) => {
110112
// Whether we're rendering an error page
111113
const ssrError = event.req.url?.startsWith('/__nuxt_error')
@@ -130,7 +132,7 @@ export default defineRenderHandler(async (event) => {
130132
req: event.req,
131133
res: event.res,
132134
runtimeConfig: useRuntimeConfig() as NuxtSSRContext['runtimeConfig'],
133-
noSSR: !!event.req.headers['x-nuxt-no-ssr'],
135+
noSSR: !!(event.req.headers['x-nuxt-no-ssr']) || (process.env.prerender ? NO_SSR_ROUTES.has(url) : false),
134136
error: !!ssrError,
135137
nuxt: undefined!, /* NuxtApp */
136138
payload: (ssrError ? { error: ssrError } : {}) as NuxtSSRContext['payload']

yarn.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10227,9 +10227,9 @@ __metadata:
1022710227
languageName: node
1022810228
linkType: hard
1022910229

10230-
"nitropack@npm:^0.5.2":
10231-
version: 0.5.2
10232-
resolution: "nitropack@npm:0.5.2"
10230+
"nitropack@npm:^0.5.3":
10231+
version: 0.5.3
10232+
resolution: "nitropack@npm:0.5.3"
1023310233
dependencies:
1023410234
"@cloudflare/kv-asset-handler": ^0.2.0
1023510235
"@netlify/functions": ^1.2.0
@@ -10243,7 +10243,7 @@ __metadata:
1024310243
"@rollup/pluginutils": ^4.2.1
1024410244
"@vercel/nft": ^0.22.1
1024510245
archiver: ^5.3.1
10246-
c12: ^0.2.11
10246+
c12: ^0.2.12
1024710247
chalk: ^5.0.1
1024810248
chokidar: ^3.5.3
1024910249
consola: ^2.15.3
@@ -10292,7 +10292,7 @@ __metadata:
1029210292
bin:
1029310293
nitro: dist/cli.mjs
1029410294
nitropack: dist/cli.mjs
10295-
checksum: a27577af6902cbf606c56adcff0c2e88007c0eccfb31b674562fa36f88b91ddf02a2d490b08678aa6912e80ff8fc01502ff19cab4ba9cb488edf2223c89eee2f
10295+
checksum: f43ce535feb213b2a7f8c06e44befdb4058e4c6e5f87c5923e35256ab5fee03c9e71d3d7a3b4aa6bc707b371a203f962447ca5a0b1c10b69d0e5466e7cf6e5ee
1029610296
languageName: node
1029710297
linkType: hard
1029810298

@@ -10752,7 +10752,7 @@ __metadata:
1075210752
knitwork: ^0.1.2
1075310753
magic-string: ^0.26.3
1075410754
mlly: ^0.5.14
10755-
nitropack: ^0.5.2
10755+
nitropack: ^0.5.3
1075610756
nuxi: 3.0.0-rc.9
1075710757
ohash: ^0.1.5
1075810758
ohmyfetch: ^0.4.18

0 commit comments

Comments
 (0)