IE11中的Angular4应用程序运行问题


73

我正在使用Angular CLI(1.1.2)构建Angular4项目。它可以在Chrome(59.0.3071.115版)和firefox(54.0.1)中完美运行,但是当我尝试使用IE11(Verison 11.0.9600.18738)时,什么都没有显示,当我在IE中打开develper模式时,它显示了以下错误:

SCRIPT5022: Exception thrown and not caught
File: polyfills.bundle.js, Line: 829, Column: 34

并且详细的错误消息如下:

在此处输入图片说明

有人知道如何解决这个问题吗?

谢谢!


3
src / polyfills.ts
Z. Bagley

3
谢谢!我只是想知道我需要取消注释polyfills.ts中的代码行
Terry Zhang

Answers:


82

为@Zeqing的答案添加更多细节。

我取消了以下代码行的注释.\my-app\src\polyfills.ts

/** IE9, IE10 and IE11 requires all of the following 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';

工作对我来说,当我在2017年VS添加一个角CLI模板的应用程序
史蒂夫

4
您可能导入的文件超出了您的需要,并且使捆绑包大小膨胀。从2018年3月开始,一个新的cli项目将在IE11上正常运行,所有注释都被注释掉了,除了es6/stringes6/array
adamdport

1
该文件是。\ my-app \ src \
polyfills.ts

1
超级有帮助。谢谢您:)
Grovelli'2

69

默认的polyfills.ts文件已注释,需要取消注释代码行并运行npm install相应模块。然后它将与IE11兼容


2
抱歉,应该安装哪些模块使其与IE11兼容?
dmitry_bond

2
@dmitry_bond所需的任何一个。[1,2,3].includes(3)例如,如果使用,.includes则会在IE11中爆炸,直到您取消注释core-js/es6/array。如果您不使用任何es6功能,则无需包括其中的任何功能,您的应用仍将与IE11兼容。
adamdport

9

当我尝试添加es7导入时得到了此提示。我只是将es6导入替换为es7导入。原来我需要两者。

给我“抛出并没有捕获到异常”错误:

import 'core-js/es7/array';

工作良好:

import 'core-js/es6/array';
import 'core-js/es7/array';
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.