Skip to content

Commit 14f33dd

Browse files
authored
Make Missing Prerender Manifest Fatal (vercel#10485)
* Fail on Invalid Prerender Manifest * Make Missing Prerender Manifest Fatal * fix test
1 parent a33e365 commit 14f33dd

File tree

3 files changed

+33
-18
lines changed

3 files changed

+33
-18
lines changed

packages/next/build/index.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -801,6 +801,17 @@ export default async function build(dir: string, conf = null): Promise<void> {
801801
dynamicRoutes: finalDynamicRoutes,
802802
}
803803

804+
await fsWriteFile(
805+
path.join(distDir, PRERENDER_MANIFEST),
806+
JSON.stringify(prerenderManifest),
807+
'utf8'
808+
)
809+
} else {
810+
const prerenderManifest: PrerenderManifest = {
811+
version: 1,
812+
routes: {},
813+
dynamicRoutes: {},
814+
}
804815
await fsWriteFile(
805816
path.join(distDir, PRERENDER_MANIFEST),
806817
JSON.stringify(prerenderManifest),

packages/next/next-server/server/spr-cache.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import fs from 'fs'
2-
import path from 'path'
32
import LRUCache from 'lru-cache'
3+
import mkdirpOrig from 'mkdirp'
4+
import path from 'path'
45
import { promisify } from 'util'
56
import { PrerenderManifest } from '../../build'
67
import { PRERENDER_MANIFEST } from '../lib/constants'
78
import { normalizePagePath } from './normalize-page-path'
8-
import mkdirpOrig from 'mkdirp'
99

1010
const mkdirp = promisify(mkdirpOrig)
1111
const readFile = promisify(fs.readFile)
@@ -72,14 +72,12 @@ export function initializeSprCache({
7272
!dev && (typeof flushToDisk !== 'undefined' ? flushToDisk : true),
7373
}
7474

75-
try {
76-
prerenderManifest = dev
77-
? { routes: {}, dynamicRoutes: [] }
78-
: JSON.parse(
79-
fs.readFileSync(path.join(distDir, PRERENDER_MANIFEST), 'utf8')
80-
)
81-
} catch (_) {
82-
prerenderManifest = { version: 1, routes: {}, dynamicRoutes: {} }
75+
if (dev) {
76+
prerenderManifest = { version: -1, routes: {}, dynamicRoutes: {} }
77+
} else {
78+
prerenderManifest = JSON.parse(
79+
fs.readFileSync(path.join(distDir, PRERENDER_MANIFEST), 'utf8')
80+
)
8381
}
8482

8583
cache = new LRUCache({
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
import Link from 'next/link'
22

3-
export default () => (
4-
<>
5-
<h3>Hi 👋</h3>
6-
<Link href="/a-non-existing-page">
7-
<a>a lnik to no-where</a>
8-
</Link>
9-
</>
10-
)
3+
function Index() {
4+
return (
5+
<>
6+
<h3>Hi 👋</h3>
7+
<Link href="/a-non-existing-page">
8+
<a>a link to no-where</a>
9+
</Link>
10+
</>
11+
)
12+
}
13+
14+
Index.getInitialProps = () => ({})
15+
16+
export default Index

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy