Was ist neu in Angular 9.1?

Angular 9.1 ist eingetroffen, mit Verbesserungen hinsichtlich Leistung und Parallelität zum ngcc-Kompatibilitäts-Compiler. Die Ivy-Kompilierungs- und Rendering-Pipeline erhielt ebenfalls Aufmerksamkeit, was zu einer besseren Leistung führte.

Angular 9.1, veröffentlicht am 25. März, folgt der Version Angular 9.0, die am 6. Februar 2020 als Produktionsversion verfügbar wurde. Das Upgrade der Version 9.0 auf das beliebte TypeScript-basierte Framework schaltet Anwendungen standardmäßig auf den Ivy-Compiler und die Laufzeit um.

Ivy bietet eine schnellere AOT-Kompilierung sowie kleinere Bundle-Größen, schnellere Tests und ein besseres Debugging. Verbesserte Bindung von CSS-Klassen und -Stilen sowie Verbesserungen bei der Typprüfung, den Erstellungsfehlern und den Erstellungszeiten sind ebenfalls in Ivy enthalten. Teil von Angular 9 ist auch  ng update, das verspricht, ein zuverlässigeres und informativeres Tool zum Aktualisieren von Anwendungen und ihren Abhängigkeiten zu sein. 

Angular bietet eine Abhängigkeitsinjektion, die besonders nützlich ist, um Datendienste für Anwendungen zusammenzustellen, sowie die Verwendung einer HTML-Vorlage zum Erstellen von Komponenten. In Angular komponieren Entwickler weiterhin Komponenten mit einer HTML-Komponente, die für wichtige Teile des Programms eine Verbindung zum TypeScript-Code herstellt.

Wo kann man Angular 9.1 oder frühere Versionen herunterladen?

Sie können die Angular-Produktionsversion von GitHub sowie Beta-Versionen herunterladen. Ein Angular-Update-Handbuch wurde veröffentlicht, zusammen mit einem Handbuch zum Upgrade auf Angular 9.

Neue Funktionen in Angular 9.1

  • Leistungsoptimierungen für ngcc sowie Verbesserungen der Parallelität und Zuverlässigkeit für ngcc monorepo-Anwendungsfälle. Das NPM-Nachinstallationsskript wird nicht mehr empfohlen. Mit ngcc wird die asynchrone Verarbeitung angehalten, wenn ein anderer Prozess über die Sperrdatei verfügt. Mit ngcc kann eine Funktion zum Reduzieren von Quellkarten einen Baum von Quelldateien laden, die durch Quellkarten verbunden sind, und diese zu einer einzigen Quellkarte reduzieren. Diese Quellkarte wird direkt von der endgültig generierten Datei den Originalquellen zugeordnet, auf die von den Zwischenquellenkarten verwiesen wird.
  • TypeScript 3.8 wird unterstützt.
  • Die Internationalisierung über i18n unterstützt jetzt RTL-Gebietsschemainformationen.
  • Die Ivy-Leistung wurde verbessert, indem das nicht verwendete Ereignisargument in den Listener-Anweisungen entfernt wurde. Zuvor hat Ivy ein $eventArgument generiert , auch wenn es nicht von den Listener-Ausdrücken verwendet wurde. Dies kann zu einer unnötigen Byterzeugung führen. Außerdem wurde ein Kompatibilitätsfix für die Überprüfung von Ivy-Vorlagen hinzugefügt.

Neue Funktionen in Angular 9.0

Neben der Standardeinstellung von Ivy enthält Angular 9.0 die folgenden neuen Funktionen und Verbesserungen:

  • Zu den neuen Optionen für das providedInErstellen eines @InjectableDienstes gehören platform: Ein Dienst, der in einem speziellen Singleton-Plattform-Injektor verfügbar ist, der von allen Anwendungen auf einer Seite gemeinsam genutzt wird, und anyder in jedem Modul, das das Token injiziert, eine eindeutige Instanz bereitstellt.
  • Komponenten-Kabelbäume, um sicherzustellen, dass die Unit-Tests korrekt und weniger spröde sind. Implementierungsdetails werden weg abstrahiert.
  • Neue Komponenten, die die Integration von YouTube- und Google Maps-Funktionen in Anwendungen ermöglichen.
  • TypeScript 3.7 und TypeScript 3.6 werden unterstützt.
  • Die Leistung von eventListeners wurde verbessert.
  • Der Standardwährungscode in CurrencyPipeist jetzt konfigurierbar.
  • Um die Leistung des Ivy-Renderers zu verbessern, werden wiederholte globale Statuszugriffe aus den i18n-Anweisungen entfernt, wenn die Informationen bereits verfügbar sind. Ivy erhält auch eine Leistungssteigerung durch das Entfernen von zusätzlichem SafeDetectionCode. Das Paket @ angle / localize kann über zu einem Angular CLI-Projekt hinzugefügt werden ng add.
  • Auch für den Ivy-Renderer werden bessere Fehlermeldungen für unbekannte Komponenten angeboten. Außerdem wurde ein neues Flag hinzugefügt localize-translate, mit dem das Quellgebietsschema angegeben werden kann.
  • Um die Leistung im Kern zu verbessern, wird die Desinfektion im Ivy-Renderer baumschüttelnd. 
  • Auch in Ivy wurde die Überprüfung des Vorlagentyps geändert, um ts.Diagnostics zu erstellen. Dies behebt ein Designproblem, bei dem der Angular-Compiler sowohl native TypeScript-Diagnosen als auch ein eigenes internes Diagnoseformat erstellt hat, das nicht optimal war.
  • Auch für den Kern fügt Angular ein neues Migrationsschema gemäß dem angegebenen Migrationsplan hinzu.
  • Der NgFormSelectorWarningSelektor wurde entfernt.
  • Für ngcc (Angular Compatibility Compiler) wurde eine Migration für nicht dekorierte untergeordnete Klassen hinzugefügt.
  • Für Ivy, den Compiler, Core, Language-Service, Ngcc und Bazel wurden eine Reihe von Fehlerkorrekturen vorgenommen.

Neue Funktionen in Angular 8.2

Angular Version 8.2 wurde im August 2019 veröffentlicht und enthält:

  • Um die Compilerleistung zu verbessern, wird das Kopieren vom Prototyp beim Klonen eines Objekts vermieden. Dadurch wird die Klonfunktion der ApplySourceSpanTransformer-Klasse aktualisiert, in der die For-In-Schleife verwendet wurde. Dies führte dazu, dass vom Prototyp in eigene Eigenschaften kopiert wurde und mehr Speicher benötigt wurde.
  • TypeScript 3.5-Unterstützung.
  • Kompilieren von Zielen, die von Kythe-Tools mit dem Ivy-Renderer verwendet werden. Dadurch werden Probleme mit Querverweisen auf transitive Abhängigkeiten beseitigt, die nicht generiert werden, da solche Abhängigkeiten vom Legacy-Compiler geladen werden.
  • Unterstützung für $elementaktualisierte Komponenten templateund templateURLFunktionen.
  • Für Bazel können Benutzer jetzt einen benutzerdefinierten Bazel CompilerHost für eine Angular-Kompilierung übergeben, der das Überschreiben des TypeScript-Compiler-Hosts unterstützt.
  • Eine Reihe von Fehlerkorrekturen, einschließlich der Erhöhung des Speicherlimits von ngcunter Bazel von 2 GB auf 4 GB.

Neue Funktionen in Angular 8.1

  • Für die Upgrade- / statische Bibliothek werden Testhelfer bereitgestellt, mit denen Angular- und AngularJS-Injektoren verkabelt werden können, ohne dass ein vollständiger Bootstrap einer Hybrid-App erforderlich ist.
  • Ablehnung der Integration in das Web Tracing Framework, das Angular zuvor für Leistungstests unterstützt hatte. Das Angular-Entwicklungsteam stellte fest, dass die Integration nicht beibehalten wurde und heute wahrscheinlich für die meisten Angular-Anwendungen nicht funktioniert. 
  • Implementierung von definitionAndBoundSpan, die jetzt gegenüber bevorzugt wird definition. Die Implementierung von definitionwurde überarbeitet und vereinfacht.
  • Verfall der Plattform-Webworker-APIs. Die Einbeziehung dieser Unterstützung war experimentell, um zu versuchen, eine gesamte Anwendung in einem Web Worker auszuführen, damit Webinhalte Hintergrundskripte ausführen können. Winkel-Befürworter versuchen dies nicht mehr.

Angular 8.1 bietet auch Fehlerbehebungen für das Bazel-Build-Tool sowie den Angular-Kern und den Router.

Neue Funktionen in Angular 8.0

Zu den im Mai 2019 veröffentlichten Verbesserungen in Angular 8 gehören: