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

Zeq*_*ang 71 compatibility internet-explorer polyfills angular-cli angular

我正在使用Angular CLI(1.1.2)构建一个Angular4项目.它在Chrome(版本59.0.3071.115)和firefox(54.0.1)中运行完美,但是当我尝试使用IE11(Verison 11.0.9600.18738)时,nothings出现并且当我在IE中打开开发模式时,它显示以下错误:

SCRIPT5022: Exception thrown and not caught
File: polyfills.bundle.js, Line: 829, Column: 34
Run Code Online (Sandbox Code Playgroud)

详细的错误消息如下:

在此输入图像描述

谁知道如何解决这个问题?

谢谢!

Swi*_*tch 80

为@ 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';
Run Code Online (Sandbox Code Playgroud)

  • 您可能导入的数量超出了您的需求,并使您的包大小膨胀.截至2018年3月,一个新的cli项目将在IE11上正常运行,所有这些都被注释掉,除了`es6/string`和`es6/array`. (4认同)

Zeq*_*ang 66

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

  • 对不起,应该安装哪些模块以使其与IE11兼容? (2认同)
  • @dmitry_bond你需要的任何一个.例如,如果使用`[1,2,3] .includes(3)`,`.includes`会在IE11中爆炸,直到您取消注释`core-js/es6/array`.如果您不使用任何es6功能,则无需包含任何es6功能,您的应用仍将与IE11兼容. (2认同)

ada*_*ort 8

当我尝试添加es7导入时,我得到了这个.我只是用es7导入替换了es6导入.结果我需要两者.

给我"抛出异常并且没有捕获"错误:

import 'core-js/es7/array';
Run Code Online (Sandbox Code Playgroud)

工作良好:

import 'core-js/es6/array';
import 'core-js/es7/array';
Run Code Online (Sandbox Code Playgroud)