本番でだけエラーが出ました。まず何をしますか。
まずローカルで本番ビルドを作って動かします。next dev は開いたルートをその都度コンパイルし、静的生成も本番用の最適化も効いていないため、本番だけで出る問題はここで再現することが多いです。
面接官が見ているのは開発サーバーと本番ビルドが別物だと理解しているか。
よくある答えと、面談でどう見られるか
- ローカルで本番ビルドを作って動かし、再現するか確かめる
開発時は開いたルートをその都度コンパイルし、最適化も静的生成も効いていません。ここで再現することが多いです。 - 本番でデバッグ表示を有効にして、画面に詳細を出す
設定内容やスタックトレースが外部に見えます。本番では避けます。 - ブラウザのコンソールを見る
クライアント側で起きたことしか出ません。サーバー側で落ちていれば何も出ません。 - 本番ビルドを再現しつつ、環境変数の差分も確認する
とくに NEXT_PUBLIC_ 系はビルド時に埋め込まれるので、ビルドした環境の値で固定されています。
模範解答
まずローカルで本番ビルドを作って動かします。next dev と next build は別物で、開発時は開いたルートをその都度コンパイルし、静的生成も本番用の最適化も効いていません。本番でだけ出る問題は、たいていここで再現します。
再現しなければ環境の差を見ます。環境変数の設定漏れ、とくに NEXT_PUBLIC_ 系はビルド時に埋め込まれるので、ビルドした環境の値で固定されています。「本番サーバーには設定したのに反映されない」はこれが原因のことが多いです。
それでも分からなければサーバー側のログを見ます。ブラウザのコンソールに出るのはクライアント側で起きたことだけなので、サーバー側で落ちている場合は何も出ません。
対象: Next.js 16(App Router) 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。