So aktivieren Sie das Tree-Shaking für ein neues Angular 4-Projekt

9

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 ..

    
Rico Suter 04.04.2017, 10:33
quelle

3 Antworten

3

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.

Der A-Time-Compiler (AOT)

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 . UglifyJS scheint ein häufiges Thema zu sein.

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.

    
R. Richards 04.04.2017 11:26
quelle
1

Verwenden Sie für Baumschütteln ng build --prod --build-optimizer . Auf diese Weise werden vendor.js und main.js in der Datei main.js zusammengefasst. Um das zu vermeiden, musst du --vendor-chunk=true

hinzufügen     
ochs.tobi 21.08.2017 09:30
quelle
-3

Versuchen Sie ng build --prod --aot

zu tun     
mezhik91 26.04.2017 09:44
quelle

Tags und Links