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

Posted

技术标签:

【中文标题】IE11中的Angular4应用程序运行问题【英文标题】:Angular4 Application running issues in IE11 【发布时间】:2018-01-03 08:24:25 【问题描述】:

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

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

详细的错误信息如下:

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

谢谢!

【问题讨论】:

src/polyfills.ts 谢谢!我刚刚发现我需要取消注释 polyfills.ts 中的代码行 【参考方案1】:

为@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';

【讨论】:

当我在 VS 2017 中添加 Angular CLI 模板应用程序时为我工作 您可能导入的数量超出了您的需要,并且使您的包体积膨胀。截至 2018 年 3 月,一个新的 cli 项目将在 IE11 上运行良好,除了 es6/stringes6/array 之外,所有这些都被注释掉了。 文件是 .\my-app\src\polyfills.ts 超级有帮助。谢谢你:)【参考方案2】:

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

给我“抛出异常但未捕获”错误:

import 'core-js/es7/array';

工作正常:

import 'core-js/es6/array';
import 'core-js/es7/array';

【讨论】:

【参考方案3】:

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

【讨论】:

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

以上是关于IE11中的Angular4应用程序运行问题的主要内容,如果未能解决你的问题,请参考以下文章

模型驱动表单 - IE11 上的输入占位符问题

Angular4 CLI 项目中的 Bootstrap 4 Datatablejs

无法使用 IE 11 和 Angular 4 在 ArcgisMap 上拖动

带有插件的 IE11 上的 QuickBlox 应用程序?

在 Linux 上使用 Angular4 构建 JHipster 时的问题

使用带有企业模式的 IE11 的 JSF 应用程序