開発2026-06-20
next dev を動かしたまま next build すると dev サーバーが壊れる(ENOENT: pages-manifest.json)
開発サーバーを起動したまま別ターミナルで next build すると、dev 側が ENOENT で 500 を返し始める。dev と build が同じ .next を共有しているのが原因。
next dev を起動したまま、別のターミナルで next build を流したら、開発サーバーが急に Internal Server Error を連発し始めた。コードは触っていないのに、だ。
事象
next devが動いている状態でnext buildを実行した- そのあと dev サーバーが 500 を返すようになる
- ログに
ENOENT: no such file or directory, open '.next/.../pages-manifest.json'等が出る
原因
next dev と next build は同じ .next ディレクトリを使う。build がビルド用にマニフェスト類を書き換え・削除するため、その間 dev サーバーが参照しているファイルが消える。結果、dev 側がファイルを見つけられず 500 になる。
コードのバグに見えて、実際は 2 つのプロセスが同じ出力先を奪い合っているだけだ。
解決策
dev と build を同時に走らせない。
- dev を動かしている間は build しない
- build したいときは、いったん dev を止める → build → dev を再起動
# devを止めてから
next build
# 終わったらdevを上げ直す
next dev
検証で本番ビルドを確認したいだけなら、next build のあと next start で見る。これも dev を止めてからにする。
補足
- プレビュー用のサーバーを別で動かしている場合も同じ。
.nextを共有していれば衝突する - 「急に Internal Server Error が出る」「再起動したら直る」を繰り返すなら、裏で build やもう一つの dev が動いていないかを疑う
※ 本記事にはアフィリエイトリンクが含まれます。