AngularCli-build und server --aot vs --prod
Bin ich mit der Konvertierung eines Angular2 - app mit commonjs für JiT und den alten Weg der manuellen Konfiguration von aot (zwei index.html Dateien, zwei Haupt.ts-Dateien, etc) auf die angular4 cli-Vorlage (ng new appName
).
Es scheint, vieles hat sich geändert rund um die cli-zwischen 2/4. Habe einige youtube-videos, schuf eine neue app mit dem ng-cli, und ich bin zu sehen, dass beide ng build
und ng serve
unterstützen --prod
und --aot
Fahnen, sondern die erzeugte webpacks sind von unterschiedlicher Größe bei Verwendung der zwei verschiedenen Flaggen.
Was ist der Unterschied zwischen
ng build --prod
und
ng build --aot
dann für dienen:
ng serve --prod
und
ng serve --aot
es scheint, dass die prod-Bündel sind kleiner als aot-bundles, aber warum?
--prod
ist prod bauen (diese wird kleiner)--aot
ist vor der Zeit der Kompilierung.- Ja, aber was bedeutet prod tun, die nicht eingekapselt in --aot?
- stackoverflow.com/questions/40205903/...
- prod weniger debug-Protokolle, und es wird wahrscheinlich keine Kontrollen mehr. Ich denke nicht prod bauen, auch führen Sie einen Doppelklick ändern überprüfen, wenn Sie eine Bindung an
functions()
zu sehen, ob es geschafft, die Veränderungen erkennen, richtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
vom Bundle-Größe "ng bauen-prod" kleiner als "build --prod --aot
Wenn Sie bestimmte Bibliotheken, die nicht unterstützen, AoT (und release-UMD-bundles) dies passieren könnte. Der Grund dafür ist, dass wir nicht optimieren können Komponenten, sind Reine JavaScript. Dies ist nicht etwas, was wir lösen können, die auf unserer Seite, leider.
Diese Bibliotheken bereitstellen müssen ES2015 Module mit Ihren Dekorateure entfernt und Ihre Komponenten/Module, die bereits AoT zusammengestellt. Wir arbeiten an Leitlinien für die Bibliotheken für die Unterstützung von JIT-und AoT-Kompilierung.
Auch, manchmal mit ein paar Vorlagen, die der AoT Größe könnte größer sein, als der JIT. Die Gzip-Versionen sollte anders herum sein, da die meisten der AoT Inhalt ist die gleichen Aussagen wiederholt über und über.
Obwohl das bundle ist größer, das bootstrap-Zeit wesentlich schneller sein sollten.
--prod
- gelten verunstalten und minifizieren zu reduzieren das bundle auch Winkel-arbeiten in der Produktion-Modus, das reduziert die Laufzeit-Warnungen gegeben durch Winkel-compiler als auch die Leistung erhöhen.--aot
- generell, wenn wir dienen eckige Projekt alle Winkel-Dateien heruntergeladen werden, die auf browser-und es dann kompilieren und ausführen der Anwendung auf dem browser, sondern inaot
gesamte Anwendung geliefert, um die browser vorkompiliert ist, damit die Leistung verbessertbuild
- bundle-Dateien und legen Sie es im dist-Ordner, so dass wir verwenden können, diejenigen, die für die Bereitstellung auf den Servern.serve
- führen Sie die Anwendung auf dem lite server.--prod leuchtet auf, AOT, brauchen Sie nicht zu pass-Optionen. Siehe diesen Abschnitt des docs: https://github.com/angular/angular-cli/wiki/build#--dev-vs---prod-builds
ng build –prod ODER ng bauen
Mithilfe der
--prod
- Kennzeichen erlaubt es, Winkel zu tun, Vor der Zeit der Kompilierung (AOT).AOT-Ahead of Time Compilation
Den Winkel-Ahead-of-Time (AOT) compiler wandelt Ihre Winkel -, HTML-und TypeScript-code in effizienten JavaScript-code während der build-phase, bevor der browser lädt und ausgeführt wird, der code.
Vorteile von AOT:
1 - Highlights der compilation error, runtime error und exception vor der Ausführung auf die browser-daher der name-Ahead Of Time (AOT).
2 - Wenn Sie mit ng bauen Sie in Ihre Projekte, um Ihre Anwendung zu erstellen, wenn Sie bemerken, die Größe der Datei vendor.bundle.js und Verkäufer.bundle.js.Karte Dateien in das build-Verzeichnis wird es in MB, die heruntergeladen und in den Browser und machen Sie unsere Anwendung geladen.
Aber auf der anderen Seite, wenn Sie die Flagge
ng build –prod
Sie werden bemerken, eine übermäßige Verringerung dieser Dateien zu 200 KBS bedeutet, dass 100 oder mehr mal weniger in der Größe.Daher empfehle ich Ihnen, die AOT in den Bau von Angular-Anwendung mithilfe von
--prod
Flagge.Und wenn Sie wollen, weiter zu Lesen und Informationen zu diesem Thema finden Sie auf der folgenden Website: https://angular.io/guide/aot-compiler