需要IE填充的Angular 5和IE11问题

时间:2019-02-03 12:53:03

标签: javascript angular internet-explorer-11

我正在使用Angular 5,并试图在IE11中运行我的应用程序。我没有在.\my-app\src\polyfills.ts中注释必要的代码,但很遗憾在我的index.html文件中收到与此代码有关的以下错误:

<script>
  System.import('main.js').catch(function(err){ console.error(err); });
</script>

Error: 'System' is undefined

我环顾四周,发现以下可能解决问题的Github问题:

https://github.com/angular/angular/issues/7144

在此线程中,它提到我需要在index.html文件中包括以下内容:

shims_for_IE.js

现在,我正在使用Angular 5,但不确定将shims_for_IE.js文件放置在index.html文件中的位置。

如何解决IE11中的'System' is undefined问题?

1 个答案:

答案 0 :(得分:2)

对于非CLI

对于shim.min.js中的index.html的非CLI项目导入

<script src="node_modules/core-js/client/shim.min.js"></script>

对于CLI

在您的polyfills.ts中取消注释这些行

/***************************************************************************************************
 * BROWSER POLYFILLS
 */

/** IE9, IE10, IE11, and Chrome <55 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/weak-map';
import 'core-js/es6/set';

按照here的说明在index.html文件中添加此元标记

 <meta http-equiv="X-UA-Compatible" content="IE=edge" />