next-on-pagesでApp RouterのREST APIがエラーになった時に見る記事
Cloudflare PagesでNext.jsアプリをデプロイする際のエラーと対応方法についての覚書です。REST APIを追加するとWranglerでのプレビューがエラーになる場合、compatibility_dateを更新することで解決できます。最新の日付に更新後、再度ビルドとプレビューを行うと問題が解消されます。
広告ここから
広告ここまで
目次
Cloudflare PagesでNext.jsアプリをデプロイする時に遭遇したエラーと、その対応方法の覚書です。
REST APIを追加すると、Wranglerでのプレビューがエラーになる
簡単なAPI、例えばapp/api/hello/route.ts
を追加します。
export const runtime = "edge";
export async function GET() {
return Response.json({
message: 'hello world'
})
}
この状態でnpm run pages:build && wrangler pages dev
を実行し、プレビューページにアクセスすると、次のエラーが発生します。
✘ [ERROR] [Error: No such module "__next-on-pages-dist__/functions/api/async_hooks".
imported from "__next-on-pages-dist__/functions/api/hello.func.js"]
このエラーに遭遇した時は、compatibility_date
を確認する
今回遭遇したケースでは、wrangler.toml / wrangler.jsoncで定義されているcompatibility_date
を新しい日付に更新すればOKでした。
- "compatibility_date": "2024-07-29",
+ "compatibility_date": "2024-09-23",
変更後、npm run pages:build && wrangler pages dev
を実行すると、ページのプレビューが表示されました。