在IE11中引发异常且未捕获到require-object-comercible

时间:2019-09-24 06:39:42

标签: internet-explorer webpack babel core-js

我正在使用Babel转换我的ES7代码。我的设置有点奇怪,因为我需要转换一些 node_modules 。我不断收到此错误:

  

SCRIPT5022:引发了异常且未捕获
  require-object-coercible.js(4,24)

2 个答案:

答案 0 :(得分:1)

为了记录,我遇到了同样的问题。只有在调试了调用堆栈之后,我才能找到它的来源。遇到同样问题的,去IE11调试器,把异常行为改成“break on unhandled exceptions”,看看调用栈,会帮你找到根源。

对我来说,这是对 Object.keys(window.XXX) 的调用,其中 window.XXX 未定义。

答案 1 :(得分:0)

我以为我的配置错误,并且我正在编译不正确的模块(因为您不应该编译core-js),但是经过一番挖掘之后,我发现问题出在我的代码中。

我在Array.from()上致电ParentNode.childrenfrom()应该在可迭代的输入上调用,在Chrome中,children属性始终返回可迭代的HTMLCollection。但是,在IE中,SVG元素的childrenundefined,这会引起require-object-coercible中的错误。这样即使在正确执行polyfill后,我的代码也可以在Chrome上正常运行,但在IE11上却无法正常工作。

解决方案是在调用children之前先对from()进行检查。