首页 > 解决方案 > Angular 8 应用程序未在 Internet Explorer 中打开

问题描述

我是新手Angular 8,目前正在开发web-app它。它工作正常Google ChromeEDGE但它甚至没有被加载IE 11。我通过互联网探索了解决方案并尝试了一些建议的解决方案。

我尝试的是:


尝试01:

将这行代码粘贴到index.html

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
<script src="https://npmcdn.com/angular2/es6/dev/src/testing/shims_for_IE.js"></script>

尝试02

在中添加了这些行polyfills.ts

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
 import 'core-js/es/symbol';
 import 'core-js/es/object';
 import 'core-js/es/function';
 import 'core-js/es/parse-int';
 import 'core-js/es/parse-float';
 import 'core-js/es/number';
 import 'core-js/es/math';
 import 'core-js/es/string';
 import 'core-js/es/date';
 import 'core-js/es/array';
 import 'core-js/es/regexp';
 import 'core-js/es/map';
 import 'core-js/es/set';

尝试03

包括对IE 9-11文件browserlist的支持。


但一切都是徒劳的,我无法解决这个问题。有人可以确定我做错了什么!

标签: javascriptangulartypescriptinternet-explorer-11angular8

解决方案


默认情况下,在角度版本 8 中,ng build启用了差异加载。但是对于ng testand ng serve,它只生成一个无法在 IE11 中运行的 ES2015 构建。

在服务期间有两种方法可以让 ES5 代码在 IE11 中运行 Angular 8 应用程序。

  1. 完全禁用差分加载。(不推荐

    您可以通过将 tsconfig.json 中的目标从“es2015”更改为es5 ”来关闭差异加载。

  2. 有多种服务配置。

    在 tsconfig.app.json 旁边创建一个新的 tsconfig tsconfig-es5.app.json,内容如下:

    { 
     "extends": "./tsconfig.app.json",
     "compilerOptions": { 
     "target": "es5"   
      }
    }
    

    在您的 angular.json 中,在 build 和 serve 目标下添加两个新的配置部分(es5 节点)以提供新的 tsconfig。

    "build": {
        "builder": "@angular-devkit/build-angular:browser",
        "options": {
            ...
    },
    "configurations": {
    "production": {
        ...
    },
    "es5": {
        "tsConfig": "./tsconfig-es5.app.json"
    }
    }
    },
    "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
        ...
    },
    "configurations": {
    "production": {
    ...
    },
    "es5": {
        "browserTarget": "<your application name>:build:es5"
    }
    }
    },
    

    此外,browserslist 文件内容如下:

    > 0.5%
    last 2 versions
    Firefox ESR
    not dead
    IE 9-11 # For IE 9-11 support, remove 'not'.
    

    然后,您可以使用以下命令使用此配置运行服务:

    ng serve --configuration es5
    

推荐阅读