こんにちは、minabeと申します。
Cloudflareでデプロイしてるブログサイトが、2週間ほど前から落ちていました...。
ようやく解決できたので、備忘録として残しておきます。
使用技術
- Next.js v15
- Mantine v7
- NotionAPI
原因はcloudflare!
どうやら、Vercelのリリースバージョンが上がってしまったことで起きたっぽい。
症状としては、デプロイ後にURLを叩くと
Internal server error
となってしまうというもの。
ローカルでは全く問題なかったので苦戦しました。
問題のなかったコミットに戻しても、環境変数を見直しても全く解決せず。
本当に原因がわからず大苦戦しました。
詳細 > Functionsのリアルタイムログで見られることに気づき、以下のエラーが見つかってからは早かったです。
"Error: No such module "next-on-pages-dist/functions/async_hooks".\n imported from "next-on-pages-dist/functions/blog.func.js""
全てはこのissueのおかげです。
解決方法
Vercelのバージョンを固定することで、一時的に解決する。
どうやらまだ根本的な解決はされてなさそう。
自分はpnpmを使用していたので、上記のissueに書いてるpackage.jsonの変更だけじゃダメだったのでこちらに記します。(一応issueコメントをしっかり読めば書いてますが。)
-
package.json
を変更する - 設定を変える
1. package.json
に以下を追記
"dependencies": {
"@cloudflare/next-on-pages": "^1.13.6",
"vercel": "39.1.1"
},
"overrides": {
"vercel": "$vercel"
}
以下のコマンドで依存関係を解決する。
pnpm i
2. 設定を変更する
- ランタイム > 互換性の日付を
"2024-09-23"
または"2024-11-11"
にする - ビルドコマンド
pnpm exec next-on-pages
に変更する
最後に
何か問題があれば、コメントください。
お読みいただきありがとうございました!