我在使用Webpack时遇到了Internet Explorer的问题。我正在使用Angular-CLI 1.7.4和Angular 5.2.10,这是当前版本。我收到了以下错误:
SCRIPT:5007 无法获取未定义或空引用的“call”属性。内联bundle.js(55,12)
这与此问题不同,因为它在bundle的另一行上。该行看起来像这样:
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
我尝试修改node_modules
中的webpack代码,将moduleId
打印到控制台,但出于某些原因它不会记录日志。
我发现了这个帖子,很多人正在处理这个问题。但是我无法看到与我的问题相关的内容。
我没有从CLI获得任何循环依赖警告。
我把我的代码还原为几个不同的先前版本,重新安装了node模块,但仍然遇到相同的错误。这真的很奇怪。
更新:这里是我使用的polyfills:
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/set';
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
我也发现了这个问题,许多人都遇到了这个问题,而提供的解决方案并没有起作用。
更新:我找到了控制台中的console.log没有被Webpack调用的原因。这是因为它并不一定在Webpack中。 我在node_modules
中搜索了modules[moduleId].call(module.exports, module, module.exports, __webpack_require__)
,发现有87个匹配项。 因为它说“webpack”,所以我认为它是webpack的一部分,所以我首先在那里查找,确实发现它在webpack中出现过,所以我就停在那里以为我找到了它。
另外,我再次遇到了这个问题,并重新启动了我的Angular-CLI服务器多次,但我无法得到一个正常工作的编译版本。
这变得非常紧急,所以我将在这个问题上设置赏金。
更新:看起来IE卡在了添加polyfills的方法(Function.prototype.call
)的调用上。 我从inline.bundle.js中捕获了它。 这是发生的第一件事之一:
function(module, exports, __webpack_require__) {
module.exports = __webpack_require__("./src/polyfills.ts");
}