Ich habe gerade ein neues Angular 4-Projekt mit dem CLI erstellt: ng new test
Die Versionen:
%Vor% Tree Shaking funktioniert jedoch nicht richtig, da meine nicht verwendete Klasse FooBar
immer noch in der main.*.js
-Datei ist.
Meine Sample-Komponente TS-Datei (FooBar sollte nicht in der Ausgabe sein):
%Vor%Ich habe versucht, Rollup zu verwenden (wie in den Dokumenten beschrieben), aber das hat nicht so gut funktioniert ...
Gibt es eine einfache Möglichkeit, Baumschütteln zu aktivieren? (Ich erwartete, dass es beim Erstellen eines Projekts über CLI standardmäßig aktiviert wird).
Update: Ich verwende ng build --prod
und es ist immer noch nicht geschüttelt ..
Update: Aus dem angular-cli-Wiki :
Alle Builds nutzen Bündelung und limitiertes Tree-Shaking, während
--prod
builds führen auch eine begrenzte Beseitigung von toten Codes über UglifyJS durch.
Siehe auch unten.
Ein --prod
Build ist standardmäßig auf --aot=true
jetzt eingestellt; Es hat schon eine Weile.
Es gibt keine Dokumente, die ich auf der Website angular.io gefunden habe, die eine Menge Details über den genauen Prozess des Baumschüttelns bietet. Die Angular CLI verwendet Webpack seit einiger Zeit, und es gibt einige Informationen darüber, wie dieses Tool hier
Solange Sie den Richtlinien im obigen Link zu AOT folgen, sollten Sie gute Ergebnisse erzielen. Wenn Sie Schwierigkeiten haben, eine AOT-Kompilierung mit Bibliotheken von Drittanbietern durchzuführen, besteht immer das Risiko, dass die Bibliothek nicht zur Unterstützung von AOT geschrieben wurde. Obwohl AOT-Kompatibilität heutzutage erwartet wird.
Tags und Links angular tree-shaking angular4