Angular 9.0: "Liebling, Ivy hat die Bundles geschrumpft!"

Die neue Hauptversion des JavaScript-Frameworks Angular liefert nach langer Wartezeit den neuen Compiler Ivy aus, der einige Vorzüge mitbringen soll.

In Pocket speichern vorlesen Druckansicht 28 Kommentare lesen
Angular 9.0: "Liebling, Ivy hat die Bundles geschrumpft!"

(Bild: kirill_makarov / shutterstock.com)

Lesezeit: 3 Min.
Von
  • Björn Bohn

Das Angular-Team hat Version 9.0 des gleichnamigen JavaScript-Frameworks veröffentlicht. Die Entwickler bezeichnen das Release als größtes Update der vergangenen drei Jahre. Der Grund ist klar: Nach einigen Verzögerungen ist der neue Compiler Ivy endlich fertig und gilt nun als Standard für neue Angular-Applikationen. Das Team verspricht kleinere Bundles, schnelleres Testing und besseres Debugging, aber auch ein fortschrittlicheres Type-Checking und kürzere Build-Zeiten. Neben den zahlreichen Änderungen, die Ivy mitbringt, gibt es auch Updates für die Funktionen ng update und provideIn.

Die Umstellung auf Ivy war zwar schon lange geplant, hat sich zuletzt aber immer weiter verzögert. Der Compiler lag zwar als experimentelle Version in Angular 8 vor, das ursprünglich für Oktober oder November 2019 geplante Angular 9 verzögerte sich allerdings – Grund waren wohl notwendige Arbeiten an Ivy. Nun gilt er als stabil.

Eine der Kernfunktionen von Ivy ist der Einsatz von Tree-Shaking, um Teile von Angular zu entfernen, die Entwickler nicht verwenden. Dadurch soll weniger Code für jede Angular-Komponente generiert werden. Die Bundles sind folglich kleiner, die größten Abnahmen sollen wohl kleine und große Angular-Apps verzeichnen. Kleine Apps, weil sie nicht viele Angular-Features benutzen, während große Apps von einer reduzierten Factory-Größe profitieren. Mittelgroße Angular-Apps lassen sich hingegen fast kaum verändern (maximal zwei Prozent kleiner sein), da sie laut dem Angular-Team kaum von Tree-Shaking profitieren, aber zu wenige Komponenten für eine Auswirkung der kleineren Factory haben.

Generell soll sich mit Ivy die Compiler-Performance verbessert haben. Ahead-of-Time Builds sind deutlich schneller, weshalb das Angular-Team sie nun auch für Builds im dev-mode standardmäßig nutzt.

Mit Ivy hat sich wohl auch die Geschwindigkeit für Tests verbessert. TestBed kompiliert Komponenten zwischen Tests nicht mehr neu (außer bei einer manuellen Überschreibung). Das soll die Prozedur zwischen 40 und 50 Prozent beschleunigen. Außerdem bietet Ivy mehr Werkzeuge zum Debuggen von Applikationen und kann mehr Types überprüfen sowie striktere Regeln für sie anwenden.

Darüber hinaus kann Ivy anscheinend besser mit CSS umgehen. Hat Angular bislang bei mehreren Definitionen eines Styles für ein Ersetzen der jeweiligen Styles gesorgt, sollen sie künftig vorhersehbar zusammengeführt werden. Aus Kompatibilitätsgründen funktionieren ngStyle und ngClass aber noch genauso wie vorher.

Einen vollständigen Überblick über die Neuerungen bietet der Blogbeitrag des Angular-Teams. Wer mehr über Ivy erfahren möchte, ist mit der Dokumentation gut beraten. (bbo)