ChunkLoadError: Loading chunk failed
Webpackのコード分割で動的チャンクの読み込みに失敗した際のエラー
概要
ChunkLoadError: Loading chunk failed は、Webpackのコード分割(Code Splitting)機能で生成された動的チャンクファイルの読み込みに失敗した際に発生するエラーです。デプロイ後のキャッシュ不整合が最も一般的な原因で、ユーザーが古いHTMLを保持したまま新しいチャンクを要求すると発生します。
エラーメッセージ
ChunkLoadError: Loading chunk 123 failed.
(error: https://example.com/static/js/123.abc123.js)
Uncaught (in promise) ChunkLoadError: Loading chunk vendors~main failed.
Loading CSS chunk mini-css-extract-plugin failed.
原因
- デプロイ後のキャッシュ不整合: 古いHTMLが新しいチャンクファイル名を知らない、または古いファイルがCDNから削除されている
- CDN/ネットワークの問題: チャンクファイルの配信が一時的に失敗している
- publicPathの設定ミス: チャンクファイルのURLが正しく解決されない
- アドブロッカーによるブロック: 特定のチャンクファイル名がブロックリストに該当
- S3/CloudFrontのキャッシュ: 古いファイルがエッジキャッシュに残っている
解決策
1. 動的importにリトライロジックを追加
| |
2. Reactエラーバウンダリでフォールバック
| |
3. Webpack設定でファイル名にcontentHashを使用
| |
4. Service Workerでキャッシュ管理
| |
5. Next.jsでの対応
| |
関連エラー
JavaScript の他のエラー
この記事は役に立ちましたか?