2017-09-05 39 views
3

我的一些用户收到此错误:的WebPack - 装载块0失败

Unhandled rejection message: 'Loading chunk 0 failed' stack: Loading chunk 0 failed at HTMLScriptElement.n

的问题是,我在复制它没有成功。我现在有这个错误一段时间了。

它出现在相同的用户,他们进入网站。但只限于其中的一些。然而,他们都使用Win7 + Chrome 60,所以它与浏览器无关。

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

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

难道是由某些与安全有关的事情引起的吗?

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

用户收到错误之一的用户代理:

Mozilla/5.0 (Windo­ws NT 6.1; Win64; x6­4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36

+0

也许您的用户正在使用阻止请求的扩展或防火墙? – Tr1et

+0

也许,我也在想,因为webpack实际上是'jsonp' - 脚本src注入,并且如果用户有一些高安全设置,那么它被阻止。 (虽然它是相同的域名)或一些防火墙.. – jony89

+0

我遇到了同样的问题,但使用动态导入(和命名块)时。无法复制,但少数用户定期收到此错误。 – Jakemmarsh

回答

1

这样做的原因是因为我用require.ensure用的WebPack它创建块,并使用jsonp添加点播这个脚本,换句话说它使用创建的块文件向脚本添加脚本src标记。

似乎有些用户有扩展或甚至一些配置来阻止这样的jsonp请求,无论它是否是相同的域。

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

此外,正在寻找一种方法,webpack将使用xhr + eval加载脚本,这将阻止这种情况。 我刚刚发现这个npm模块:https://github.com/elliottsj/xhr-eval-chunk-webpack-plugin,但我预计它会更受webpack本身的支持。

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