Von Angular 7 zu Angular 8

Auf dem Weg zu Angular 8: Neue Features in Beta 6
Keine Kommentare

Angular 8.0.0-beta.5 wurde veröffentlicht. Mit dabei sind vier neue Features und drei Bugfixes.

Der Releasezyklus von Angular sieht vor, dass alle sechs Monate eine neue Major-Version erscheint. Das klappt mal besser, manchmal aber auch nicht ganz so gut. Bei Angular 7 kam das Release aber pünktlich im Oktober. Somit müsste Angular 8 im April oder Mai 2019 folgen. Bis dahin geht es zuerst weiter mit Minor-Releases von Angular 7 und dann den Beta-Versionen von Angular 8.

Angular 8: Die Beta-Releases

Angular 8.0.0-beta.5

Update vom 21. Februar 2019

Die neuste Beta-Version von Angular Angular 8, Beta 6, bringt vier neue Features mit. Unter der Versionsnummer Angular 8.0.0-beta.5 wurde unter anderem ein Update für die Dependency Domino auf Version 2.1.2 vorgenommen. Im Compiler-CLI ging es außerdem mit der Arbeit am Ivy Renderer weiter, der ja zu Angular 8 als Preview-Version implementiert werden soll. Wenn enableIvy auf true gesetzt wird, wurde bislang ein Hybrid-Modus mit ngc und ngtsc gestartet. Mit dem aktuellsten Release ändert sich das. Der Standard liegt nun auf ngtsc, das als Alias für true Anwendung findet. Der Hybrid-Modus ist somit nicht mehr vorhanden. Im Core gab es eine Änderung an den Queries ViewChild und ContentChild. Hier können Entwickler nun selbst definieren, wann die Queries aufgelöst werden. Zuvor fand die Auflösung in Abhängigkeit vom Ergebnis zu unterschiedlichen Zeitpunkten statt. Im Router ist es mit dem neusten Release möglich, Hash-basierte Navigationen über setUpLocationSync zu synchronisieren.

Außerdem bringt Angular 8.0.0-beta.5 drei Bugfixes mit. Weitere Informationen zum Release können wir immer dem Changelog auf GitHub entnommen werden.


Angular 8.0.0-beta.4

Update vom 18. Februar 2019

Die fünfte Beta für Angular 8 ist da. Mit dem als Version 8.0.0-beta.4 bezeichneten Release wurden erneut einige Features in Angular 8 implementiert und zahlreiche Bugfixes vorgenommen. Unter den Bugfixes ist ein behobenes Problem mit der Installation von Angular im Bazel-Workspace. Die Installation schlug zuvor aufgrund eines Bugs fehl, der durch die Abfrage der Versionsnummer ausgelöst wurde. Der aktuelle Bugfix stellt eine temporäre Lösung dar, die entfällt, sobald die Abfrage der Versionsnummer nicht mehr nötig ist. Bazel selbst ist noch als experimentelles Feature markiert.

Zu den neuen Features in Angular 8.0.0-beta.4 gehört, dass in Chrome für Benchpress Tests nun ein vollständiges Logfile der Performance-Daten erstellt werden kann. Die Daten werden in einer JSON-Datei abgelegt, sodass Entwickler ein genaueres Bild von der Ressourcennutzung in Chrome während der Testausführung erhalten. Auch neu ist, dass der dts Bundler in Bazel nun als Action in ng_module verfügbar ist. Die weiteren drei neuen Features finden sich im Compiler und Compiler-CLI. Der Angular-Compiler unterstützt nun das Tokenizing von escapeden Strings und Sub-Sektionen von Input-Strings. Im Compiler-CLI werden Symbole nun nicht mehr automatisch Re-Exportiert. Das Feature ist aber weiterhin optional verfügbar.

Weitere Informationen zu den neuen Features und weiteren Bugfixes im Release können wie immer dem Changelog auf GitHub entnommen werden.

In der vorletzten Woche stellte Stephen Fluin außerdem die weiteren Pläne des Angular-Teams in Sachen Ivy vor. In den letzten Beta-Releases von Angular 8 war Ivy nicht unter den im Changelog genannten Features vertreten; fertiggestellt scheint der neue Renderer aber auch nicht zu sein. Zu Angular 8 ist geplant, so teilte Fluin mit, Ivy als Preview zu implementieren. Mit einem Release Candidate sei im April zu rechen. Weitere Informationen zur nun bekannt gegebenen Timeline für das Release von Ivy haben wir hier für euch zusammengefasst.


Angular 8.0.0-beta.3

Update vom 6. Februar 2019

Angular 8.0.0-beta.3 wurde veröffentlicht. Die neuste Beta für Angular 8 hat erneut eine Änderung erhalten, die die Performance von Angular verbessern soll. Dieses Mal wurde an der Dateigröße von PNG-Dateien gearbeitet. Unter Verwendung von pngcrush wurden alle PNG-Dateien komprimiert. Neben dieser kleinen Neuerung wurden fünf Bugfixes implementiert. Das betrifft erneut den Bereich, der schon in den vorherigen Releases im Fokus stand: Zwei der Bugfixes gehören zum experimentellen Feature Bazel. Der Bazel Builder kann nun require.resolve() auflösen, außerdem wurde ein Problem mit den Integration Tests für das Bazel-Schematics behoben. Zwei weitere Bugfixes betreffen den Bereich Compiler-CLI, wo synthetische Dateipfade nun anhand des Input-Filepaths erstellt werden. Außerdem wird im Kontext der Diagnostics jetzt die Compiler-Option newLine beachtet. Das letzte Bugfix findet sich im Core. Dort wurde createInjector() aus dem Public API entfernt.

Weitere Informationen zu Angular Angular 8.0.0-beta.3 können im Changelog auf GitHub gefunden werden.


Angular 8.0.0-beta.2

Update vom 31. Januar 2019

Zwei Bugfixes, ein neues Feature und eine Performance-Verbesserung: Das bringt die dritte Beta von Angular 8 mit. Das neue Feature ist erneut im Compiler zu finden, betrifft laut Pull Request aber auch Bazel: ngtsc kann nun unter tsc_wrapped verwendet werden. Auch darüber hinaus ist es nun möglich, ngtsc in bereits bestehende TypeScript Compilation Binaries einzubinden.

Bazel hat außerdem ein Bugfix erhalten, wie dem Changelog zu entnehmen ist: „also pass afterDeclarations transformers to emitWithTsickle (#28342) (70e426b)“. Für die Forms wurde ebenfalls ein Bugfix implementiert.

Die als Verbesserung an der Performance bezeichnete Neuerung an Angular 8.0.0-beta.2 befindet sich im Core. Hier wurde daran gearbeitet, die typeof-Checks konsistenter zu gestalten. Weitere Informationen können wie immer dem Changelog auf GitHub entnommen werden.


Angular 8.0.0-beta.1

Update vom 23. Januar 2019

Angular 8.0.0-beta.1 ist da. Damit ist bereits die zweite Beta für Angular 8 erschienen. Erneut wurde am experimentellen Feature Bazel gearbeitet, das nun SASS unterstützt. Neben diesem neuen Feature wurde an Bazel außerdem ein Bug behoben, der zu Problemen bei großen Modulen führte. Das Speicherlimit für Node.js für die die ng_module-Rule wurde erhöht, sodass es hier nicht mehr zu Out-Of-Memory-Meldungen kommen sollte.

Die zweite Beta-Version von Angular 8 bringt außerdem zwei weitere neue Features mit. Eins davon betrifft den Compiler. Dort werden eingegebene SASS/LESS-Dateien nun automatisch in .css umgewandelt, da die Reference zur Compile-Time und zur Design-Time gleich sein muss. Dies betrifft natürlich auch das bereits genannte neue Feature für Bazel. Im Bereich der Forms wurde markAllAsTouched() zu AbstractControl hinzugefügt.

Zu den Neuerungen an Angular 8.0.0-beta.1 gehört daneben auch eine zurückgenommene Änderung an Angular. Für Build-Prozesse in Docker sollte ein Image-basierter Cache in Windows BuildKite verwendet werden. Dies führte jedoch zu Abstürzen und der Fehlermeldungen, sodass die Änderung zurückgezogen wurde. Das Problem wurde an die Entwickler von Docker weitergeleitet.

Weitere Informationen zu Angular 8.0.0-beta.1 können dem Changelog auf GitHub entnommen werden.


Angular 8.0.0-beta.0

Update vom 17. Januar 2019

Die Arbeit an Angular 8 hat begonnen, das erste Ergebnis kann getestet werden. Mit Angular 8.0.0-beta.0 steht die erste Beta-Version des Frameworks bereit, die vor allem auf Bazel fokussiert ist. Zwölf von 13 Bugfixes im Release nehmen Änderungen an Bazel vor, das selbst noch als experimentelles Feature markiert ist. Darunter sind beispielsweise de Eintrag von /bazel-out in .gitignore und der Eintrag der Dependency ibazel für Bazel-Projekte.

Das neue Feature in der ersten Beta von Angular 8 bezieht sich auf Angular Forms:

forms: export NumberValueAccessor & RangeValueAccessor directives (#27743) (ac15717)

Zur Verbesserung der Performance wurde am Verhalten von ServerRendererFactory2 gearbeitet. Bisher wurde hier für jedes Request eine neue Instanz von DomElementSchemaRegistry erstellt. Nun wird stattdessen eine geteilte Instanz verwendet.

Weitere Informationen zu Angular 8.0.0-beta.0 können dem Changelog auf GitHub entnommen werden.


Angular 7.x: Die Minor-Releases

Angular 7.2.0 veröffentlicht

Update vom 8. Januar 2019

Nach nur einem Release Candidate steht Angular 7.2 final zum Download bereit. Die neue Minor-Version von Angular 7 bringt vier Bugfixes mit, wovon zwei das Nesting vom Komponenten betreffen. Hier geht es um das Verhalten von ngUpgradeLite im Kontext von downgradeModule(). Komponenten werden nach dem Downgrading nun korrekt verarbeitet, außerdem ist es mit Angular 7.2 möglich, Komponenten aus verschiedenen downgegradeten Modulen zu nesten. Im aktuellen Release wurde außerdem ein Bug in Bazel behoben, der die Verwendung von Protractor unter Windows mit der Protractor Rule betrifft. Es ist jetzt wieder möglich, Protractor Tests zu starten. Der letzte Bugfix betrifft ein nun aufgelöstes API-Mismatch von getError und hasErrorim Bereich der Forms.

Weitere Informationen zum Release können über das Changelog auf GitHub aufgerufen werden.

Update zur Version (16. Januar 2019): Nach der Veröffentlichung von Angular 7.2 wurden das Changelog der Version noch einmal erweitert. Das Release umfasst nicht nur die vier vorgenannten Bugfixes, wie ursprünglich gemeldet, sondern natürlich auch alle Neuerungen, die mit den Versionen Angular 7.1.1 bis 7.1.4 veröffentlicht wurden. Außerdem benennt das Changelog nun eine Reihe von Features, die mit Angular 7.2 veröffentlicht wurden. Für das selbst noch als experimentell markierte Feature Bazel steht nun Schematics-Support via ng-new zur Verfügung. Außerdem bringt Angular 7.2 Support für TypeScript 3.2 und einige kleinere neue Features für den Router mit. Alle weiteren Informationen dazu sind im Changelog zu finden.


Angular 7.2.0-rc.0

Update vom 19. Dezember 2018

Die Betas sind durch, es folgen die Release-Kandidaten. Angular 7.2.0-rc.0 heißt der erste auf dem Weg zur finalen 7.2-Version. 12 Bugfixes wurden erledigt, 2 neue Features sind hinzugekommen.

Heraus sticht der Support für TypeScript 3.2. Damit stehen etwa die strengeren Typechecks für bind, call und apply auch in Angular zur Verfügung. Neu ist zudem ein Predicate Function Mode für runGuardsAndResolvers. In diesem Modus ignorieren Guards und Resolvers Veränderungen, wenn eine Predicate-Funktion false zurückgibt. Damit sind Use Cases möglich, in denen eine Anwendung gewisse Parameter-Updates ignorieren muss, andere aber nicht.

Mit dem Eintritt in die RC-Phase rückt die 7.2-Version in unmittelbare Nähe. Wieviele Release-Kandidaten uns bis dahin noch beschwert werden, ist allerdings noch nicht abzusehen.


Angular 7.2.0-beta.2

Update vom 12. Dezember 2018

Nicht mal eine Woche haben die Angular-Entwickler für das nächste Beta-Release gebraucht. Allerdings sind auch lediglich vier Fixes umgesetzt worden. Drei davon betreffen die Bazel-Komponente. So hatte das Upgrade auf die neue ts_library Fehler in schematics/bazel-workspace-Dateien offenbart. Diese sind nun behoben. Eingeführt wurde zudem eine neue Art zu überprüfen, ob die npm-Version von @angular/bazel dieselbe ist, wie die von Bazel im Angular Repository installierte.

Insgesamt sind die folgenden Fixes in Angular 7.2 Beta 2 zu finden:

  • bazel: fix TS errors in the schematics/bazel-workspace files (#27600) (3290fc3)
  • bazel: Read latest versions from latest-versions.ts & use semver check (#27526) (30a3b49)
  • bazel: tsickle dependency not working with typescript 3.1.x (#27402) (f034114)
  • forms: typed argument for FormBuilder group (#26985) (b0c7561)

Angular 7.2.0-beta.1

Update vom 7. Dezember 2018

Nach der kleinen ersten Beta für Angular 7.2 fällt die zweite nun umso größer aus: Mit zahlreichen Bugfixes, einigen Features und sogar einem Breaking Change steht das neuste Beta-Release von Angular zum Download bereit. Das Thema der neuen Version ist offensichtlich: Es geht um Bazel. Bazel ist ein Build- und Test-Tool, das unabhängig von Angular entwickelt wird. Das Angular-Team arbeitet seit einer Weile daran, das Tool fest in Angular zu integrieren und somit leicht für Angular-Anwender verfügbar zu machen. Einen wichtigen Schritt in diese Richtung ist das Angular-Team mit dem Release nun gegangen: Das offizielle Angular Schmeatics für Bazel wurde implementiert, mit dem Bazel über das ng-new-Kommando im CLI zu einem Projekt hinzugefügt werden kann.

Auch der Breaking Change, der mit der zweiten Beta von Angular 7.2 ausgeliefert wurde, betrifft Bazel: Transitive Dependencies von build_bazel_rules_nodejs und build_bazel_rules_typescript werden künftig nicht mehr automatisch via rules_angular_dependencies() installiert. Stattdessen müssen sie manuell über das Workspace-File installiert werden:

load("@build_bazel_rules_typescript//:package.bzl", "rules_typescript_dependencies")
rules_typescript_dependencies()

load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dependencies")
rules_nodejs_dependencies()

Neben den Neuerungen für Bazel bringt das Release außerdem fünf neue Features für den Router mit. Für die Navigation kann nun der Type history.state genutzt werden, auch kann der state nun an routerLink Directives und NavigationExtras weitergegeben werden. Für runGuardsAndResolvers ist nun ein pathParamsOrQueryParamsChange-Modus verfügbar. Das letzte neue Feature bezieht sich erneut auf die Navigation und betrifft den Aufruf von Objekten, wenn zurück navigiert wird. Weitere Informationen zum Release können wie immer dem Changelog auf GitHub entnommen werden.


Angular 7.2.0-beta.0

Update vom 29. November 2018

Die erste Beta-Version von Angular 7.2 hat zwei Bugfixes mitgebracht. Bei Netzwerkfehlern wird nun die Request-URL mit ausgegeben. Außerdem gab es eine Neuerung mit Bezug zu Ivy: Die Abhängigkeit der Auflösung von vorwärts gerichteten Referenzen von der Runtime wurde aufgelöst.

Und wie sieht es beim Ivy Renderer selbst aus? Hier hat sich seit dem Release von Angular 7.1 nicht viel getan. Die zehn noch offenen Features, die zu Angular 7.1 noch bearbeitet werden mussten, sind noch immer nicht abgeschlossen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -