IT-Q

本番でだけエラーが出ました。まず何をしますか。

まずローカルで本番ビルドを作って動かします。next dev は毎回コンパイルされ、静的生成も本番用の最適化も効いていないため、本番だけで出る問題はここで再現することが多いです。

面接官が見ているのは開発サーバーと本番ビルドが別物だと理解しているか。

よくある答えと、面談でどう見られるか

  • ローカルで本番ビルドを作って動かし、再現するか確かめる
    開発時は毎回コンパイルされ、最適化も静的生成も効いていません。ここで再現することが多いです。
  • 本番でデバッグ表示を有効にして、画面に詳細を出す
    設定内容やスタックトレースが外部に見えます。本番では避けます。
  • ブラウザのコンソールを見る
    クライアント側で起きたことしか出ません。サーバー側で落ちていれば何も出ません。
  • 本番ビルドを再現しつつ、環境変数の差分も確認する
    とくに NEXT_PUBLIC_ 系はビルド時に埋め込まれるので、ビルドした環境の値で固定されています。

模範解答

まずローカルで本番ビルドを作って動かします。next dev と next build は別物で、開発時は毎回コンパイルされ、静的生成も本番用の最適化も効いていません。本番でだけ出る問題は、たいていここで再現します。

再現しなければ環境の差を見ます。環境変数の設定漏れ、とくに NEXT_PUBLIC_ 系はビルド時に埋め込まれるので、ビルドした環境の値で固定されています。「本番サーバーには設定したのに反映されない」はこれが原因のことが多いです。

それでも分からなければサーバー側のログを見ます。ブラウザのコンソールに出るのはクライアント側で起きたことだけなので、サーバー側で落ちている場合は何も出ません。