Sortie de Angular 9.0

Par:
fredericmazue

mar, 11/02/2020 - 14:52

Le célèbre framework Angular vient de sortir en version 9.0. Il s'agit d'une version majeure qui adopte par défaut le pipeline de compilation et de rendu nouvelle génération Ivy.

Pour mémoire, Ivy esr apparu dans Angular 6.0. Mais il a aujourd'hui gagné la maturité qui permet qu'Angular 9.0 l'utilise par défaut. Ivy promet une compilation et un rendu accéléré, ainsi qu'une taille de code réduite par rapport au pipeline précédent View Engine.

Pour réduire la taille des paquets, le compilateur Ivy a été conçu pour supprimer les parties d'Angular qui ne sont pas utilisées par l'application et ainsi générer moins de code pour chaque composant Angular.

Les tests seront plus rapides également. Auparavant, TestBed recompilait tous les composants entre l'exécution de chaque test, que des modifications aient été apportées aux composants (par exemple, par le biais de remplacements). Dans Ivy, TestBed, réorganisé pour l'occasion, ne recompile pas les composants entre les tests à moins qu'un composant n'ait été remplacé manuellement. Avec ce changement, les tests d'acceptation de base du framework sont environ 40% plus rapides, assure l'équipe d'Angular qui promet aux développeurs qu'ils constateront un gain de 40% à 50% sur les tests de leurs applications.

Ivy promet également une meilleure expérience de débogage, notamment grâce à une amélioration de la trace de la pile. Auparavant, celle-ci pouvait être inutile, par exemple lorsqu'il s'agissait de déboguer un problème lié à ExpressionChangedAfterItHasBeenCheckedError:

Avec Ivy, vous voyez une trace de pile plus utile qui vous permet de passer directement à l'instruction du modèle dont l'expression a changé :

Le compilateur et le runtime Ivy fournissent également des améliorations pour la gestion des styles. Auparavant, si une application contenait des définitions concurrentes pour un style, ces styles se remplaceraient de manière destructive. Avec Ivy, les styles sont fusionnés de manière prévisible, explique l'équipe d'Angular.

Angular 9.0 fonctionne avec TypeScript 3.6 et TypeScript 3.7, et, en ce qui concerne ce dernier, supporte la nouvelle fonctionnalité de chaînage optionnel.

Les autres nouveautés, nombreuses, de Andular 9.0, sont récapitulées dans le billet qui annonce sa sortie.