Probleme mit Angular4-Anwendungen in IE11

73

Ich erstelle ein Angular4-Projekt mit Angular CLI (1.1.2). Es läuft perfekt in Chrome (Version 59.0.3071.115) und Firefox (54.0.1), aber als ich versuchte, IE11 (Verison 11.0.9600.18738) zu verwenden, wird nichts angezeigt und wenn ich den Entwicklungsmodus im IE öffne, wird der folgende Fehler angezeigt ::

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

Die detaillierte Fehlermeldung lautet wie folgt:

Geben Sie hier die Bildbeschreibung ein

Weiß jemand, wie man dieses Problem löst?

Vielen Dank!

Terry Zhang
quelle
3
src / polyfills.ts
Z. Bagley
3
Vielen Dank! Ich habe gerade herausgefunden, dass ich Zeilen der Codes in polyfills.ts auskommentieren muss
Terry Zhang

Antworten:

82

Um die Antwort von @ Zeqing detaillierter zu gestalten.

Ich habe die folgende Codezeile in kommentiert .\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';
Schalter
quelle
Arbeitete für mich, als ich eine Angular CLI-Vorlagen-App in VS 2017 hinzufügte
Steve
4
Sie importieren wahrscheinlich mehr als Sie benötigen und blähen Ihre Bundle-Größe auf. Ab März 2018 läuft ein neues Cli-Projekt auf IE11 einwandfrei, wobei alle diese außer es6/stringund auskommentiert sind es6/array.
Adamdport
1
Die Datei ist. \ My-app \ src \ polyfills.ts
Manohar Reddy Poreddy
1
Super hilfreich. Vielen Dank :)
Grovelli
69

Die Standarddatei polyfills.ts ist kommentiert und muss Codezeilen auskommentieren und npm ausführen, um das entsprechende Modul zu installieren. Dann wird es mit dem IE11 kompatibel sein

Terry Zhang
quelle
2
Entschuldigung, welche Module sollten installiert werden, damit sie mit IE11 kompatibel sind?
dmitry_bond
2
@dmitry_bond was auch immer du brauchst. Wenn Sie [1,2,3].includes(3)zum Beispiel verwenden, .includeswürde in IE11 explodieren, bis Sie nicht mehr kommentieren core-js/es6/array. Wenn Sie keine es6-Funktionen verwenden, müssen Sie keine einschließen, und Ihre App ist weiterhin mit IE11 kompatibel.
Adamdport
9

Ich habe dies erhalten, als ich versucht habe, einen es7-Import hinzuzufügen. Ich habe einfach den es6-Import durch den es7-Import ersetzt. Es stellte sich heraus, dass ich beides brauchte.

Gibt mir den Fehler "Ausnahme ausgelöst und nicht abgefangen":

import 'core-js/es7/array';

Funktioniert gut:

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