Il s’agit d’une version majeure depuis les 3 dernières années. En effet, la version active IVY, le nouveau moteur de rendu du Framework.
Faire la mise à jour
Cette nouvelle version nécessite en prérequis d’installer NodeJS 10 au minimum.
La page de migration d’Angular décrit bien la procédure à suivre. Je conseille l’exécution des commandes suivantes :
ng update @angular/cli@8 @angular/core@8
ng update @angular/cli @angular/core
npm -g update @angular/cli
Cela prend un peu de temps pour tout mettre à jour.
Quels sont les nouveautés ?
Les nouveautés de la version sont décrites sur le blog d’Angular. Les principales informations sont les suivantes. Je vous invite aussi à lire les API abandonnées.
IVY
Le nouveau moteur de rendu du Framework inclut plein d’améliorations sans pour autant modifier le code de l’application, notamment :
- Les bundles sont plus petits
- Meilleurs performances pendant les tests
- L’objet « ng » permet d’appeler des méthodes du composant pour le debug
- Meilleur affichage des erreurs
TypeScript 3.7
La dernière version du langage est utilisée par Angular 9.
Je vous invite à consulter les nouveautés des versions 3.6 et 3.7.
Le point que je trouve le plus marquant est l’opérateur de chaîne optionnel « ? ». Il est maintenant possible d’écrire :
let a = monObjet?.maPropriete1?.maPropriete2
let a = monTableau?.[1]
// => renvoi "undefined" si l'élément n'est pas accessible
Dans la pratique ?
Concrètement, j’ai fait la migration sur l’un de mes projets Angular 8.
Je n’ai eu aucune erreur de compilation après la migration du projet.
Suite à compilation, le bundle est passé de 3,15 Mo à 2,92 Mo, soit une diminution de 7%.