Plans pour Angular 8.0 et Ivy

Chaque semaine, nous recevons la question: "Quand Ivy sera-t-elle prête?" Il est temps de vous dire comment vont les choses avec la version 8.0, ainsi que de partager avec vous les plans pour vous rappeler et libérer le moteur Ivy.


Dans la huitième version, publiée au deuxième trimestre de cette année, nous aimerions introduire la possibilité d'une inclusion facultative de la version préliminaire d'Ivy (Ivy Preview).



Nouveautés de la version 8.0


Bien que la plupart de notre équipe se soit lancée dans le développement, nous sommes prêts à présenter plusieurs mises à jour pour la version 8.0, sur laquelle nous travaillons si dur. Il convient de noter que certaines fonctionnalités de la version finale peuvent différer de celles décrites ci-dessous.


  • Chargement différencié de JavaScript moderne.
    La CLI va maintenant créer des ensembles de normes JavaScript obsolètes (ES5) et modernes (ES2015 +) dans le cadre du processus de construction, qui seront chargées côté client en fonction du navigateur, réduisant ainsi la vitesse et le temps de téléchargement jusqu'à la première interaction dans les navigateurs modernes. Cette fonctionnalité a été développée conjointement avec Manfred Steyer et est basée sur son projet ngx-build-modern .
  • Possibilité de connecter Ivy Preview.
    Évaluez comment votre application fonctionnera avec Ivy et dites-nous vos impressions afin que nous puissions apporter les ajustements nécessaires à la version finale.
  • Compatibilité totale avec les versions précédentes du routeur angulaire.
    Nous avons ajouté le mode de compatibilité descendante, ce qui simplifiera le processus de mise à jour des grands projets. Il sera plus facile pour les développeurs de passer à Angular en autorisant le chargement différé de parties d'applications AngularJS à l'aide de l'API $ route.
  • Amélioration du regroupement Web Worker.
    Les travailleurs Web sont un excellent moyen d'écrire du code qui s'exécute dans un thread séparé, ce qui accélère le travail et améliore le parallélisme des applications. À la demande de nombreux développeurs, l'interface de ligne de commande prendra en charge le regroupement de travailleurs Web.
  • Envoi de données d'utilisation (facultatif).
    Nous ajouterons la télémétrie à l'interface de ligne de commande pour mieux comprendre les besoins des développeurs. Avec votre consentement, nous collecterons des données anonymes comme les commandes que vous utilisez ou la vitesse de construction. Plus nous avons d'informations sur la façon dont les développeurs utilisent Angular, mieux nous pouvons fabriquer notre produit.
  • Mise à jour des dépendances.
    Comme toujours, nous mettrons à jour les dépendances, en particulier TypeScript, RxJS et Node, afin de suivre le reste de l'écosystème JavaScript.

À quoi ressemblera le développement ultérieur d'Ivy?


Dans la version 8.0, nous aimerions introduire la possibilité d'activer Ivy Preview. Si vous êtes nouveau sur Ivy, consultez la présentation de Kara sur Ivy à Google I / O 2018 .


Dans la version préliminaire, il sera possible de basculer entre Ivy et le View Engine standard. Vous trouverez plus d'informations à ce sujet dans les futures versions bêta. Si l'application est compilée par le compilateur Ivy, toutes les dépendances d'Angular ou d'autres composants tiers fonctionneront toujours, grâce à une analyse du compilateur de compatibilité. En utilisant la version préliminaire, vous pouvez détecter les erreurs lors de la connexion des dépendances et nous aider à affiner le compilateur.


À quoi s'attendre de Ivy Preview:


  1. Code généré facile à lire et à déboguer lors de l'exécution
  2. Temps de reconstruction réduit
  3. Taille du bundle optimisée (la réduction de la taille du bundle est déjà perceptible sur les applications réelles, cependant, d'autres améliorations sont prévues dans cette partie)
  4. Vérification avancée du type de modèle
  5. Compatibilité totale avec les versions précédentes

Ivy n'est pas encore prêt à couvrir tous les cas d'utilisation. Certaines fonctionnalités, telles que i18n dans Angular Universal, ne seront probablement pas prises en charge dans l'aperçu. En particulier, le service de langue angulaire ne fonctionnera pas avec Ivy Preview.


Le but de la version préliminaire est de transférer des applications existantes vers le moteur Ivy sans avoir besoin de les réécrire. Il existe également de nombreuses API spécifiques à Ivy que nous ajouterons plus tard à notre API publique dans le cadre d'Angular Labs et des versions futures.


Quand est-ce que tout sera prêt?


En avril 2019, nous prévoyons d'introduire une version candidate, et un mois plus tard - la sortie de la version publique 8.0.0, mais nous ne pouvons pas donner de garanties fermes sur les termes. Dans la version 8.0.0, Ivy Preview est conçu pour tester la thèse de la pleine compatibilité avec les versions précédentes d'Angular. Cela nous permettra également de développer des outils de migration automatisés qui pourraient être nécessaires à l'avenir.


Nous aimerions forcer l'inclusion de Ivy pour tout le monde dans la prochaine version majeure prévue pour la sortie cet automne, car nous visons à atteindre une compatibilité totale avec les versions précédentes et à prendre en charge les applications existantes.


L'introduction de toutes les fonctionnalités d'Ivy dans la neuvième version ouvrira de nombreuses opportunités aux développeurs, et c'est une bonne nouvelle. Bientôt, nous partagerons nos plans pour l'introduction de nouvelles fonctionnalités, API, fonctionnalités d'utilisation d'Ivy et développement avec.


Suivez nos articles de blog, twitter et venez à la conférence ng-conf pour en savoir plus sur nos plans.

Source: https://habr.com/ru/post/fr446476/


All Articles