仅在FF上的以下行中,我的产品环境中的webpack出现了一个奇怪的错误。我已经尝试过Chrome,Safari,并且没有任何问题。

function __webpack_require__(moduleId) {

    ...

    // Execute the module function
    modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
}


如果我在该行中断并重新加载页面,则不会发生此问题,这使我认为它在加载的文件上存在某种竞争状况。

我有以下顺序的4个webpack输出文件。

<script type="text/javascript" src="/manifest-4.e05278c43f895122ca44.js" async=""></script>
<script type="text/javascript" src="/vendor-2.e05278c43f895122ca44.js" async=""></script>
<script type="text/javascript" src="/main-0.e05278c43f895122ca44.js" async=""></script>
<script type="text/javascript" src="/bootstrap-3.e05278c43f895122ca44.js" async=""></script>


我在Github&SO上查找过类似问题,但认为它们与我的问题没有直接关系。

[更新]

将确切的moduleId调试为49。对于第49个模块,主捆绑包文件的内容为空,这意味着它必须在供应商捆绑包中。怀疑主捆绑包和供应商捆绑包的加载速度可能会引起一些问题。

最佳答案

我自己找出答案。

怀疑这是因为供应商捆绑包在主捆绑包之后加载。即使在main之前指定了供应商捆绑包,也有两个原因导致此。


async属性在获取捆绑软件时可能会导致竞争状况
除了async,我们也是preloading的主要组合


我们删除了两者,因为我们对它们没有任何用处。

09-25 16:14
查看更多