use dynamic import for prerender manifest in e2e#728
use dynamic import for prerender manifest in e2e#728james-elicx wants to merge 4 commits intoopennextjs:mainfrom
Conversation
|
conico974
left a comment
There was a problem hiding this comment.
This fails e2e, you should be able to test that with next start, it should behave the same
| try { | ||
| const prerenderManifest = await import( | ||
| // @ts-expect-error | ||
| /* webpackIgnore: true */ "./.next/prerender-manifest.json" |
There was a problem hiding this comment.
This won't work here, the file are not at the right place.
Probably something like that "../../../../prerender-manifest.json" should do the trick.
There was a problem hiding this comment.
To be honest I didn't run it locally because the e2e readme said the first step was to deploy the app...
If I run it with next start, it still returns a 500 for the route with this - I presume it's because of how Next.js serves the app. Unsure what will happen in the OpenNext build though as I can't run e2es locally.
There was a problem hiding this comment.
What if we fallback on readFile on error and add a comment that the import is specific for @opennextjs/cloudflare?
If not we can diverge an reconcile later (add a comment in our version of the tests)
There was a problem hiding this comment.
I found the issue actually, they were 2 issues locally :
host is undefined with next start
and you need to add { assert: { type: "json" } } in the import
There was a problem hiding this comment.
Interesting. Thanks for taking a look. Although we'll want to use with instead of assert as it's deprecated.
| // @ts-expect-error | ||
| /* webpackIgnore: true */ "../../../../prerender-manifest.json", | ||
| { assert: { type: "json" } } | ||
| { with: { type: "json" } } |
There was a problem hiding this comment.
Both next build and next start work fine for me
There was a problem hiding this comment.
I can't build it. I'm on node 20.11.1 BTW

Upstreaming changes being made in cloudflare adapter.