Angular 8 Project没有在IE11中工作,甚至认为我已经走过了每一步



您可能经常听说这个问题。但我似乎找不到解决这个问题的办法。每次我为应用程序提供服务器并在IE上启动它时,我都会在vendor.js中看到一个指向箭头函数的语法错误。

我已经经历了以下步骤:

  • 将我的tsconfig中的target更改为es5
  • browserlist中,我将not IE 9-11更改为IE 9-11
  • 在polyfill.js中,取消了所有core-js导入的注释,添加了classlist.js导入,甚至安装了包

经过所有步骤,我仍然遇到了同样的问题。似乎只有polyfill.js文件被转换为polyfill-es5.js文件,我不知道为什么。

我有一个Angular应用程序,设置如下:

@angular-devkit/architect           0.801.3
@angular-devkit/build-angular       0.801.3
@angular-devkit/build-optimizer     0.801.3
@angular-devkit/build-webpack       0.801.3
@angular-devkit/core                8.1.3
@angular-devkit/schematics          8.1.0
@angular/animations                 8.1.0
@angular/cdk                        8.2.3
@angular/cli                        8.1.0
@angular/common                     8.1.0
@angular/compiler                   8.1.0
@angular/compiler-cli               8.1.0
@angular/forms                      8.1.0
@angular/platform-browser           8.1.0
@angular/platform-browser-dynamic   8.1.0
@angular/platform-server            8.1.0
@angular/router                     8.1.0
@ngtools/webpack                    8.1.3
@schematics/angular                 8.1.0
@schematics/update                  0.801.0
ng-packagr                          5.7.1
rxjs                                6.5.3
typescript                          3.4.5
webpack                             4.35.2

对此有什么想法吗?

向致以最良好的问候

Nuru

编辑:这就是我的polyfills.ts的样子:

import 'core-js/';
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/es7/array';
import 'core-js/fn/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/set';
import 'core-js/es6/reflect';
import 'classlist.js';
import 'intl';
import 'web-animations-js';

import 'zone.js/dist/zone';

此外,我还尝试安装和导入typedarrayblobjs

以及我的依赖项:

"dependencies": {
"@angular/animations": "8.1.0",
"@angular/cdk": "^8.0.2",
"@angular/common": "8.1.0",
"@angular/core": "^8.1.0",
"@angular/forms": "8.1.0",
"@angular/platform-browser": "8.1.0",
"@angular/platform-browser-dynamic": "8.1.0",
"@angular/platform-server": "8.1.0",
"@angular/router": "8.1.0",
"@ng-bootstrap/ng-bootstrap": "^4.0.1",
"@ng-select/ng-select": "^2.11.2",
"@ngrx/core": "^1.2.0",
"@ngrx/store": "^8.0.1",
"@ngx-translate/core": "^10.0.2",
"@ngx-translate/http-loader": "^3.0.1",
"angular2-tinymce": "^2.1.2",
"balloon-css": "^0.5.0",
"bcryptjs": "^2.4.3",
"chart.js": "^2.7.1",
"core-js": "^2.5.1",
"favico.js": "^0.3.10",
"lazysizes": "^5.1.1",
"linkify-it": "^2.1.0",
"mapbox.js": "^3.1.1",
"md5": "^2.2.1",
"moment": "^2.24.0",
"mousetrap": "^1.6.2",
"ng-pick-datetime": "^7.0.0",
"ng-pick-datetime-moment": "^1.0.8",
"ng2-dragula": "^2.1.1",
"ngx-bowser": "^0.1.0",
"ngx-device-detector": "^1.3.5",
"ngx-image-cropper": "^1.4.1",
"ngx-infinite-scroll": "^6.0.1",
"ngx-moment": "^3.3.0",
"ngx-pipes": "^2.5.1",
"papaparse": "^4.6.3",
"push.js": "^1.0.4",
"resumablejs": "^1.0.2",
"rxjs": "^6.5.2",
"socket.io-client": "^2.1.1",
"text-encoding": "^0.6.4",
"twemoji": "^11.0.0",
"zone.js": "~0.9.1"
},

在src文件夹下有一个名为polyfills.ts的文件。你看了这个文件并安装了IE支持所需的依赖项并取消了行注释吗?

https://angular.io/guide/browser-support

请参考此线程在angular 8应用程序polyfill中配置ES5。然后,使用以下命令运行具有此配置的服务:

ng serve --configuration es5

关于箭头函数的问题,请尝试使用babel将相关代码翻译为ES5。

最新更新