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を実行すると、ページのプレビューが表示されました。

    参考にしたページ

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark