Angular 角度7和IE

Angular 角度7和IE,angular,internet-explorer,internet-explorer-11,angular7,polyfills,Angular,Internet Explorer,Internet Explorer 11,Angular7,Polyfills,查看angular应用程序时,我在IE 11中遇到了这个错误 SCRIPT445: Object doesn't support this action zone.js (199,1) if (this._zoneDelegate.handleError(this, error)) { throw error; } 使用Angluar Core 7.2.15和我使用的polyfills import 'core-js/es6/symbol'; import 'core-js/es6/

查看angular应用程序时,我在IE 11中遇到了这个错误

SCRIPT445: Object doesn't support this action
zone.js (199,1)

if (this._zoneDelegate.handleError(this, error)) {
    throw error;
}
使用Angluar Core 7.2.15和我使用的polyfills

import 'core-js/es6/symbol';
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/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
import 'core-js/es6/array';
import 'core-js/es6/object';
import 'core-js/es7/array';
import 'core-js/es7/object';

不确定我还能做什么

您需要导入所有需要的多边形填充,以使Angular应用程序在IE中工作。除了您导入的上述多边形填充之外,还请在polyfills.ts中取消注释以下多边形填充:

import 'classlist.js';
import 'web-animations-js';
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
import 'zone.js/dist/zone';
然后,您需要使用npm安装一些软件包:

npm install --save classlist.js
npm install --save web-animations-js

你也可以参考一下。

的建议是正确的。正如他所说,CoreJS只为流行的es6功能提供多填充。我使用了IE不支持的
newURL()

这些polyfill仅用于IE11中不支持的常用es6+函数。如果您的代码包含更多不受支持的代码,那么您必须自己查找polyfill。例如,Object.entries我们必须自己进行多边形填充,尽管我们包含了来自es6 importy的对象。我们的多边形填充应该包含
import'zone.js/dist/zone'这是默认情况下的默认值。我已经在IE 11中测试了Angular 8应用程序,在添加ES6 polyfills后,它可以正常工作。区域没有问题。我认为
zone
导入是在默认情况下完成的。尽管如此,我没有测试这个。但它是通过多边形填充导入的。我不知道为什么。实际上,您可以禁用其导入和区域使用,并开始使用手动更改检测,这将减轻应用程序的重量并提高总体性能(如果更改检测逻辑正确),感谢您发布了此问题的解决方案。您可以在48小时后将您的答案标记为可接受的答案,此时可进行标记。它可以在将来帮助其他社区成员解决类似的问题。谢谢你的理解,我也这么做了。我使用
npm安装url polyfill--save
url
安装polyfill,并使用
import'url polyfill'将其添加到polyfill.ts文件中