Ich verwende das Angular-CLI (ng-cli) für mein Projekt. Wenn ich ng serve
eintippe, wird die Anwendung ausgeführt. Wenn ich jedoch ng serve --prod
eintippe, erhalte ich den folgenden Fehler.
Es ist ein bekanntes Problem, dass UglifyJs ES6 nicht analysieren kann .
Außerdem sind diese SO-Posts ( hier und hier ), schlagen Sie vor, tsconfig.json
auf target es5
zu ändern. Was mir unklar ist, ist, ob sie die tsconfig.json
des verzehrenden Angular-Projekts oder dasjenige, das zum Erzeugen der Bibliothek verwendet wurde, meinen. Auf jeden Fall hat mein Angular-Projekt tsconfig.json
bereits es5
als Ziel. Es sieht wie folgt aus.
Die tsconfig.json
der Bibliothek, die in das Angular-Projekt importiert wurde, sieht wie folgt aus und zielt NICHT auf es5
, sondern auf es6
. Übrigens kann ich den Schalter in dieser Bibliothek nicht einfach von es6
zurück zu es5
umdrehen (ich habe es gerade versucht), da ich es6
-Klassen wie Set
und Map
verwende (die Verwendung dieser Klassen ist so streng, dass es nicht trivial wäre, sie zu ändern, gelinde gesagt, hätte ich von alldem gewusst, hätte ich mich entschieden, es6 ganz zu vermeiden.
Hier sind meine Fragen.
ng serve --prod
? es5/es6
-Ziel meines Angular-Projekts oder der importierten Bibliothek? ng serve --prod
zaubert. Ist dieser Vorgang dokumentiert? Wenn ja, lass es mich wissen, wie das geht. Die angular-cli.json
ist, wo ich verstehe ng-cli von konfiguriert ist. Ich kann nicht Kopf oder Zahl machen, wie man die Babel-Pre-Processing einbindet, wenn dieser Vorschlag wahr ist. Es gibt ein paar Tricks, die Sie verwenden können, um die ES6 / ES2015-Minimierung zu behandeln.
Sie können das uglifyjs-webpack-plugin von bebraw verwenden, das UglifyJs vom Webpack entkoppelt. Verwendung ist wie folgt:
%Vor% Und dann müssen Sie uglify-js
reference in Ihrer package.json durch Folgendes ersetzen:
"uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony",
ng serve ist speziell für den Einsatz in einer Entwicklungsumgebung konzipiert.
versuche zu laufen:
%Vor%Wenn Sie Ihre App mit IE testen:
führe den Befehl
aus %Vor%und dann müssen Sie angular-cli.json hinzufügen
%Vor%oder fügen Sie einfach das in index.html
hinzu %Vor%Das Problem, das ich hatte, war mit einem NPM-Modul namens Autotrack von Google. Das Paket befindet sich in ES6 und es handelt sich um eine .js-Datei, so dass Typescript es nicht übertragen hat. Ich musste manuell eine ES5-Version von Autotrack hinzufügen, damit uglify funktioniert.
Tags und Links angular ecmascript-6 babeljs angular-cli uglifyjs