Webpack - 加载块0失败

时间:2017-09-05 09:37:11

标签: javascript reactjs webpack ecmascript-6

我的一些用户收到此错误:

  

未处理的拒绝消息:'正在加载块0失败'堆栈:正在加载   在HTMLScriptElement.n

中,块0失败

问题是,我没有成功复制它。我现在已经有一段时间了。

相同的用户,时间进入网站。但只对其中一些人而言。 然而,所有这些都使用Win7 + Chrome 60,因此它与浏览器无关。

我在网上找不到任何关于此特定错误的内容。另外我没有使用react-router,我确实使用了反应。

任何想法还有什么可能是错的?

是否可能是由某些安全问题引起的?

我正在使用webpack 2.6.1和CommonsChunkPlugin为我的供应商创建块。

获得错误的其中一个用户的用户代理:

  

Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML,   像Gecko)Chrome / 60.0.3112.113 Safari / 537.36

5 个答案:

答案 0 :(得分:2)

之所以这样,是因为我使用require.ensure和webpack创建了块,并使用jsonp按需添加此脚本,换句话说,它将脚本src标记添加到使用创建的块文件的HTML。

似乎某些用户有扩展甚至某些配置来阻止此类jsonp请求,无论它们是否属于同一个域。

一个解决方案显然没有使用require.ensure,或者使用错误回调来处理这种情况。

此外,还在寻找webpack使用xhr + eval加载脚本的方法,这将防止出现这种情况。 我刚刚找到了这个npm模块:https://github.com/elliottsj/xhr-eval-chunk-webpack-plugin,但我希望它能得到webpack本身的支持。

我已经为此开了一个问题:https://github.com/webpack/webpack/issues/5630,希望看到一些进展。

答案 1 :(得分:1)

回答Google搜索:

就我而言,Error: Loading chunk 9 failed.仅在Firefox中触发。 由正则表达式正后方引起。 (?<=...)

  

请注意,并非所有浏览器都支持此功能。自行决定使用!

答案 2 :(得分:0)

问题可能是由以下原因引起的:

  • 互联网连接不稳定
  • 浏览器缓存错误/格式错误

我发现的唯一解决方案是使用此Webpack插件重试块加载:https://github.com/mattlewis92/webpack-retry-chunk-load-plugin

它将:

  • 尝试每秒加载一次块。
  • 将添加?cache-bust=X查询,以避免(可能是格式错误的)缓存的JS文件。

缺点是-它无限期地束缚。

答案 3 :(得分:0)

只需检查要加载块文件(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"
      ],

答案 4 :(得分:0)

如果您使用的是Cloudflare或Web服务器的任何CDN主机,请尝试清除缓存,因为这可能是由于旧版本应用程序的缓存引起的。由于新版本与旧版本不匹配,因此失败。