Webpack错误,加载块失败

时间:2018-07-12 06:16:25

标签: javascript webpack vue.js babeljs

堆栈:Webpack 4.16.0,Node8,Vuejs2

在服务我的Vuejs应用程序时,我看到以下错误。

Error: Loading chunk 4 failed.
(missing: https://myapp.com/ui.chunk.bundle.js)
    at HTMLScriptElement.s (demo:1)

此错误在各个版本中都是一致的,可以通过URL访问实际文件本身。

我正在使用通过import()进行代码拆分,并且初始应用程序可以很好地加载,但是当另一个块加载时,流程将中断,它在ui.chunk.bundle.jsvendors~ui.chunk.bundle.js之间也可以变化。

为生产而构建时,会显示一个新错误,但似乎也与加载模块有关:

demo:1 TypeError: Cannot read property 'call' of undefined
    at o (demo:1)
    at Object.349 (ui.chunk.bundle.js:1)
    at o (demo:1)
    at o.t (demo:1)

我曾尝试升级webpack和babel,但由于之前运行得非常好,因此可能会陷入困境。

在本地计算机而非Google App Engine上运行应用程序时,一切似乎都很好。

应用程序的加载方式: 它是通过脚本标签加载到其他网站的,因此domainA.com运行脚本标签,该脚本标签调用myapp.com/js,流程开始,即应用程序基于某种逻辑加载各种块。

在myapp.com上访问由webpack生成的索引页面捆绑包时,一切都会正确加载。

请帮助!

3 个答案:

答案 0 :(得分:1)

这可能是由于“webpack.config.js”,您可以尝试更新输出对象

module.exports = {
  output: {
    chunkFilename: '[id].chunk.[chunkhash].js',
  }
};

希望它能够奏效!

答案 1 :(得分:0)

那是很深的东西,而且肯定不容易分两步来解决,最好是使用cli创建一个新项目,如果方便的话使用推荐的预设,并且如果它仍然存在,请检查已安装的npm软件包并确保它们都没有中断并且至少根据您的vue版本是最新的。

答案 2 :(得分:-1)

这可能是跨站点脚本问题。 确保myapp.com设置了正确的标题。

在myapp.com上,设置以下标头:

Access-Control-Allow-Origin: https://domainA.com

您还应确保您的脚本标签的异步设置为false:

<script async="false" …