0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.js v16.の開発サーバー起動時、ターミナルが `○ Compiling /` の状態で止まり、ブラウザが白屏(ホワイトアウト)になる問題への解決法

0
Posted at

現象

  • ターミナルの進捗が長時間止まる
  • ブラウザでアクセスしても反応がない
  • エラーメッセージが出力されない(静默フリーズ)

原因分析(Lingma AI利用)

  1. Turbopackの互換性: Turbopack が特定の依存関係やライブラリを処理する際に、無限ループや待機状態に陥っている可能性がある。
  2. キャッシュの不整合: .next ディレクトリ内のキャッシュが破損している。

解決策

1. Webpackモードに一時的に切り替える

Turbopackが原因である可能性があるため、一度 Webpack で起動を確認します。

package.json
"scripts": {
  "dev:webpack": "next dev -p 3002 --webpack"
}

2. キャッシュとロックファイルの削除

一度 .next ディレクトリを完全に削除してクリーンな状態で再ビルドします。

# キャッシュの削除
rm -rf .next

# 開発サーバーの再起動
npm run dev

その後

直した後にWebpackからTurbopackに変わって、WebSiteがエラー出ないため、next ファイルによる問題だろうと思っています。そのため、AIに聞いて、答えは以下です。

.next は Next.js のビルド出力ディレクトリであり、以下のような重要なデータを含んでいる:

      1.Turbopack の内部キャッシュ(依存関係グラフ・中間ビルド結果など)
      2.ロックファイル(.next/dev/lock)
      3.ビルド成果物
      4.TypeScript の型チェックキャッシュ

コンパイルが異常終了した場合、これらの内部状態やキャッシュが破損・不整合を起こし、
その結果コンパイルが停止(ハング)することがある。

.next を削除することで:

      1.破損した内部状態をリセットできる
      2.依存関係グラフを再構築できる
      3.ロックファイルの競合を解消できる
      4.すべてのモジュールを強制的にフルビルドできる

特に Turbopack は増分ビルドや積極的な依存追跡、強力なキャッシュ戦略に依存しているため、
内部状態の不整合が起きると問題が長引きやすい。

そのため、.next を削除することは Turbopack に「クリーンな状態」を与え、
内部状態を再構築させる最も効果的な解決策の一つである。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?