Vueのサーバーへのパッケージング後、チャンク{n}の読み込みに失敗したエラーの解決法
2022-02-26 04:44:06
このエラーの主な原因は、vueがwebpackのパッケージングによって複数のモジュールのjsファイルを生成し、ビルドしたファイルをサーバにアップロードすると、これが最初のアップロードとなり、訪問時にこのエラーが発生しないことです。しかし、通常のプロジェクトは更新や反復が必要で、再度パッケージングすると、いくつかのjsファイルが変更され、サーバーにアップロードした後、ブラウザキャッシュindex.htmlの問題や、ユーザーがサイトにアクセスしたときに、再び以前のjsファイルにアクセスするため、このエラーが発生することになります。
Loading chunk {n} failed
このようなエラーが報告されます。
ブラウザのキャッシュ問題を解決しても、この状況は避けられず、特に開発中にテスト環境をアップロードすると、よくこのような状況に遭遇します。例えば、ほとんどのVueプロジェクトはシングルページのアプリなので、vue-routerを使用していて
route lazy loading
vue-routerの場合、ルートジャンプのために現在のアプリケーションにアクセスすると、該当モジュールのjsファイルをサーバから動的にリアルタイムで引き出しており、コードを変更してオンラインでパッケージ化すると、jsファイル名が変更され、ルートジャンプ中はページを更新しないため元のファイル名のままアクセスし、これがモジュールを見つけられないというエラーとなります。
次に、解決策です。
ルートにエラーコールバックメソッドを追加し、ルートエラーをリスニングした後にページのリフレッシュを行い、その時点で最新の現在のコードを取得してエラーレポートを修正する必要があります。
router.onError((error) => {
const pattern = /Loading chunk (\d)+ failed/g;
const isChunkLoadFailed = error.message.match(pattern);
if (isChunkLoadFailed) {
window.location.reload();
// router.replace(router.history.pending.fullPath);
}else{
console.log(error)
}
});
関連
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
vueにおけるv-forループオブジェクトのプロパティ
-
Vueのクラススタイルの使い方の詳細
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
Uncaught TypeError: null のプロパティ 'appendChild' を読み取れませんでした。
-
jquery.ajaxのbeforeSendメソッド(プログレスバー、「お待ちください」プロンプトなどを解決する .............................)。
-
Netflix スペースマンダイヤルのJavaScriptによる実装
-
ajaxの役割
-
htmlページ jsファイル内の関数呼び出しエラー onclickは処理方法が定義されていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
jsを使った簡単な照明スイッチのコード
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
Vueにシンプルなメモ帳機能を実装
-
Vueの「データを聴く」原則を解説
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
Canvasを使ったJavaScriptの描画