Jede Woche bekommen wir die Frage: "Wann wird Ivy fertig sein?" Es ist Zeit, Ihnen zu erklären, wie es mit Version 8.0 läuft, und Ihnen Pläne mitzuteilen, an die Ivy-Engine zu denken und sie freizugeben.
In der achten Version, die im zweiten Quartal dieses Jahres veröffentlicht wurde, möchten wir die Möglichkeit der optionalen Aufnahme der vorläufigen Version von Ivy (Ivy Preview) einführen.

Was ist neu in Version 8.0?
Während der größte Teil unseres Teams sich intensiv mit der Entwicklung befasst hat, sind wir bereit, einige Updates für Version 8.0 vorzustellen, an denen wir so hart arbeiten. Es ist anzumerken, dass einige Funktionen in der endgültigen Version von den unten beschriebenen abweichen können.
- Differenziertes Laden von modernem JavaScript.
Die CLI erstellt nun im Rahmen des Erstellungsprozesses Bündel veralteter (ES5) und moderner (ES2015 +) JavaScript-Standards, die je nach Browser auf der Clientseite geladen werden, wodurch die Download-Geschwindigkeit und die Zeit bis zur ersten Interaktion in modernen Browsern verringert werden. Diese Funktionalität wurde gemeinsam mit Manfred Steyer entwickelt und basiert auf seinem Projekt ngx-build-modern . - Möglichkeit, Ivy Preview zu verbinden.
Bewerten Sie, wie Ihre Anwendung mit Ivy funktioniert, und teilen Sie uns Ihre Eindrücke mit, damit wir die erforderlichen Anpassungen an der endgültigen Version vornehmen können. - Volle Kompatibilität mit früheren Versionen des Angular-Routers.
Wir haben den Abwärtskompatibilitätsmodus hinzugefügt, der das Aktualisieren großer Projekte vereinfacht. Entwickler können leichter auf Angular aktualisieren, indem sie das verzögerte Laden von Teilen von AngularJS-Anwendungen mithilfe der $ route-API zulassen. - Verbesserte Web Worker-Bündelung.
Web-Worker sind eine großartige Möglichkeit, Code zu schreiben, der in einem separaten Thread ausgeführt wird. Dies beschleunigt die Arbeit und verbessert die Anwendungsparallelität. Auf Wunsch vieler Entwickler unterstützt die Befehlszeilenschnittstelle die Bündelung von Webworkern. - Nutzungsdaten senden (optional).
Wir werden der Befehlszeilenschnittstelle Telemetrie hinzufügen, um die Bedürfnisse der Entwickler besser zu verstehen. Mit Ihrer Zustimmung erfassen wir anonyme Daten wie die von Ihnen verwendeten Befehle oder die Erstellungsgeschwindigkeit. Je mehr Informationen wir darüber haben, wie Entwickler Angular verwenden, desto besser können wir unser Produkt herstellen. - Abhängigkeitsaktualisierung.
Wie immer werden wir Abhängigkeiten aktualisieren, insbesondere TypeScript, RxJS und Node, um mit dem Rest des JavaScript-Ökosystems Schritt zu halten.
Wie wird die Weiterentwicklung von Ivy aussehen?
In Version 8.0 möchten wir die Möglichkeit einführen, Ivy Preview zu aktivieren. Wenn Sie Ivy noch nicht kennen, lesen Sie Karas Präsentation von Ivy bei Google I / O 2018 .
In der vorläufigen Version wird es möglich sein, zwischen Ivy und der Standard View Engine zu wechseln. Weitere Informationen hierzu finden Sie in zukünftigen Beta-Versionen. Wenn die Anwendung vom Ivy-Compiler kompiliert wird, funktionieren Abhängigkeiten von Angular oder anderen Komponenten von Drittanbietern dank eines Durchlaufs des Kompatibilitäts-Compilers weiterhin. Mit der vorläufigen Version können Sie Fehler beim Verbinden von Abhängigkeiten erkennen und den Compiler verfeinern.
Was Sie von Ivy Preview erwarten können:
- Generierter Code, der zur Laufzeit leicht zu lesen und zu debuggen ist
- Reduzierte Wiederherstellungszeit
- Optimierte Bundle-Größe (Die Reduzierung der Bundle-Größe ist bei realen Anwendungen bereits spürbar, in diesem Teil sind jedoch einige weitere Verbesserungen geplant.)
- Erweiterte Überprüfung des Vorlagentyps
- Volle Kompatibilität mit früheren Versionen
Ivy ist noch nicht bereit, alle Anwendungsfälle abzudecken. Einige Funktionen, wie z. B. i18n in Angular Universal, werden in der Vorschau höchstwahrscheinlich nicht unterstützt. Insbesondere funktioniert der Angular Language Service nicht mit Ivy Preview.
Der Zweck der vorläufigen Version besteht darin, vorhandene Anwendungen auf die Ivy-Engine zu übertragen, ohne sie neu schreiben zu müssen. Es gibt auch viele Ivy-spezifische APIs, die wir später im Rahmen von Angular Labs und zukünftigen Versionen zu unserer öffentlichen API hinzufügen werden.
Wann wird alles fertig sein?
Im April 2019 planen wir die Einführung eines Release-Kandidaten und einen Monat später die Veröffentlichung der öffentlichen Version 8.0.0. Wir können jedoch keine festen Garantien für die Bedingungen geben. In Version 8.0.0 wurde Ivy Preview entwickelt, um die These der vollständigen Kompatibilität mit früheren Versionen von Angular zu testen. Darüber hinaus können wir automatisierte Migrationstools entwickeln, die möglicherweise in Zukunft benötigt werden.
Wir möchten die Aufnahme von Ivy in die nächste Hauptversion erzwingen, die im Herbst dieses Jahres veröffentlicht werden soll, da wir die vollständige Kompatibilität mit früheren Versionen erreichen und vorhandene Anwendungen unterstützen möchten.
Die Einführung der vollen Funktionalität von Ivy in der neunten Version eröffnet Entwicklern viele Möglichkeiten, und das sind gute Nachrichten. In Kürze werden wir unsere Pläne für die Einführung neuer Funktionen, APIs, Funktionen zur Verwendung von Ivy und die damit verbundene Entwicklung teilen.
Folgen Sie unseren Blog-Posts, Twitter und besuchen Sie die ng-conf-Konferenz , um mehr über unsere Pläne zu erfahren.