[英]Multiple independent webpack bundles: chunks load not working correctly
我有一个由两个独立项目组成的环境,可以描述如下:
IDE 和应用程序都必须在 3rd 方 JavaScript 环境中使用。 它会在需要时调用window.initIDE
和window.initApp
。 没有显式依赖,因为如果另一个缺失,IDE 和 App 仍然必须工作,所以页面中包含的 JS 是这样的:
<script src=".../app.js" />
<script src=".../ide.js" />
这种环境正常工作了很长时间。 IDE 基于react-boilerplate,因此它从一开始就使用了块和代码拆分。
最近我们使用react-loadable在 App 中添加了 JS 块。
当页面上只使用其中一个时,IDE 和 App 都按预期工作,但如果我们同时激活 App 和 IDE,则不会加载块:使用的最后一个库是不会加载块的库,而第一个则工作正如预期的那样。
检查浏览器的网络选项卡,我们根本看不到加载第二个称为 lib 的块的活动。
显然我们得到了错误:IDE 和 App 的回溯是相似的:
Uncaught (in promise) TypeError: Cannot read property 'call' of undefined
at __webpack_require__
检查__webpack_require__
:
modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
虽然modules
是所有可用modules
的数组,但没有modules[moduleId]
因为moduleId
指的是无效索引(可能是因为它尚未加载......但为什么呢?)
我一直认为 webpack 内部实现并没有在包构建之外全局公开,但不知何故这似乎并不正确。
一个捆绑如何干扰另一个? 为什么块没有加载? 有关如何解决此问题的任何建议?
您应该为每个包配置output.jsonpFunction属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.