私のユーザーの何人かはこのエラーを受け取っています:
未処理の拒否メッセージ:「チャンク0の読み込みに失敗しました」スタック:HTMLScriptElement.nでチャンク0の読み込みに失敗しました
問題は、それを再現することに成功していないことです。そして、私はしばらくの間このエラーを経験しました。
同じユーザーに発生しますeveryユーザーがWebサイトに入る時間。しかし、それらの一部にのみ。しかし、それらはすべてWin7 + Chrome 60を使用しているため、ブラウザとは関係ありません。
この特定のエラーに関してウェブ上で何かを見つけることができませんでした。さらに、反応ルーターを使用していませんが、反応を使用しています。
他に何が間違っている可能性がありますか?
何らかのセキュリティに関連する何かが原因である可能性はありますか?
webpack
2.6.1およびCommonsChunkPlugin
を使用して、ベンダーのチャンクを作成しています。
エラーが発生したユーザーの1人のユーザーエージェント:
Mozilla/5.0(Windo 6.1ws NT 6.1; Win64; x64)AppleWebKit/537.36(KHTML、Geckoなど)Chrome/60.0.3112.113 Safari/537.36
これは、require.ensure
をチャンクを作成するwebpackで使用し、jsonp
を使用してこのスクリプトをオンデマンドで追加したためです。つまり、作成されたチャンクファイルでhtmlにスクリプトsrcタグを追加している。
一部のユーザーは、同じドメインであるかどうかに関係なく、そのようなjsonp
リクエストをブロックする拡張機能や設定さえ持っているようです。
1つの解決策は、明らかにrequire.ensure
をまったく使用しないか、このシナリオを処理するためにエラーコールバックを使用することです。
さらに、webpackがxhr + evalを使用してスクリプトをロードする方法を探していました。これにより、このようなシナリオを防ぐことができます。私はちょうどこのnpmモジュールを見つけました: https://github.com/elliottsj/xhr-eval-chunk-webpack-plugin 、それでも私はそれを期待していましたwebpack自体でさらにサポートされます。
私はこの問題をオープンしました: https://github.com/webpack/webpack/issues/5630 。
グーグルからの検索に対する回答:
私の場合 Error: Loading chunk 9 failed.
はFirefoxでのみ発生します。正規表現の正規表現によるもの。 (?<=...)
この機能はすべてのブラウザでまだサポートされていないことに注意してください。あなた自身の裁量で使用してください!
問題の原因は次のとおりです。
私が見つけた唯一の解決策は、このWebpackプラグインでチャンクロードを再試行することです。 https://github.com/mattlewis92/webpack-retry-chunk-load-plugin
そうなる:
?cache-bust=X
クエリを追加します。マイナス面は-それは無期限につながります。
チャンクファイル(jsファイル)をロードするパスを確認してください。 angular.jsonファイルのdeployURLのパスを確認してください。
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "./Scripts/app",
"deployUrl": "./Scripts/app/",
"index": "app/index.html",
"main": "app/main.ts",
"polyfills": "app/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": false,
"assets": [
"app/favicon.ico",
"app/assets"
],