Une nouvelle mouture de l’environnement d’exécution de JavaScript côté serveur vient d’être publiée, Node.js 14. Il apporte des améliorations clés comme l'ajout d’une API de stockage local asynchrone expérimentale vous permettant de suivre une transaction à travers les différentes étapes d'un processus et vers des ressources externes, les rapports de diagnostic en tant que fonctionnalité stable, etc. Il a aussi ajouté la prise en charge de l'internationalisation et une utilisation plus facile du module natif. Voici un aperçu de ce dont il est question dans cette version.
Le rapport de diagnostic est maintenant devenu une fonctionnalité stable
Cette fonctionnalité a été ajoutée en tant que fonction expérimentale dans la version 12 de Node.js. Elle est désormais stable. Grâce à elle, des rapports de diagnostic basés sur JSON peuvent être générés à la demande ou lorsque des événements se produisent. Ces rapports permettent de diagnostiquer des problèmes tels qu'une utilisation élevée du CPU, des pannes de mémoire et des performances lentes. Maintenant qu’elle est stable, vous pouvez vous en servir en toute confiance en production afin de résoudre rapidement vos problèmes.
Diagnostic Report fournit un rapport détaillé qui est à la fois lisible par la machine et par l'homme. Les informations sont précieuses et d’une très grande utilité. Par exemple, imaginez que votre application se bloque par intermittence et que les fichiers de base ne sont pas générés. Vous pouvez rapidement générer un rapport de diagnostic et vérifier les limites d'utilisateurs afin de vérifier qu'ils sont configurés pour permettre la génération de fichiers de base.
Un support expérimental de WebAssembly System Interface (WASI)
Dans Node.js 14, une prise en charge expérimentale de WebAssembly System Interface (WASI) a fait ses débuts. Les paquets écrits au format “WebAssembly for Node.js” peuvent offrir de meilleures performances et une prise en charge multiplateforme pour certains cas d'utilisation. WASI fournit des applications “sandboxed” (bac à sable) basées sur le format binaire WebAssembly pour accéder au système d'exploitation sous-jacent via des fonctions de type POSIX.
Le moteur JavaScript V8 a été mis à jour vers V8 8.1
Node.js 14 embarque la version 8.1 de V8. Cette version du moteur JavaScript qui sous-tend Node.js est disponible avec des capacités telles qu'un opérateur de chaînage d’optionnels, l’opérateur de coalescence nulle et d’autres fonctionnalités. L’équipe de développement de Node.js a aussi fourni une nouvelle API Intl.DisplayNames permettant d’afficher les noms transplantés des langues, régions et scripts.
Une API de stockage local asynchrone expérimentale
Pouvoir suivre une transaction à travers les différentes étapes d'un processus ainsi que vers des ressources externes (par exemple, un appel à une base de données) est une exigence importante de l'entreprise. Cela fournit souvent les informations dont vous avez besoin pour identifier là où se produit un problème dans votre application ou pour identifier les contraintes en matière de performances. La nature asynchrone de Node.js signifie que les solutions provenant d'autres langages (comme le stockage local par fil) ne fonctionnent pas pour Node.js.
La communauté a travaillé sur des API pour aider à suivre et à gérer le contexte par des appels asynchrones sur un certain nombre de versions. L'API expérimentale Async Hooks a été ajoutée pour aider à résoudre ce problème, mais elle n’est pas encore stable. Node.js 14 ajoute une nouvelle API expérimentale appelée AsyncLocalStorage. Selon la note de version de Node.js 14, l'espoir est que cette API de niveau supérieur puisse être plus facilement stable, car elle expose moins d'éléments internes et fournit une API plus simple.
Amélioration de la cohérence des API Streams
Node.js 14 comprend un certain nombre de changements majeurs dans l'implémentation de Node.js Streams. Ces changements sont destinés à améliorer la cohérence entre les API Streams afin de lever toute ambiguïté et de rationaliser les comportements des différentes parties du noyau de Node.js. À titre illustratif, “http.OutgoingMessage” est similaire à “stream.Writable” et “net.Socket” fonctionne de la même manière que “stream.Duplex”. Un changement notable est que l'option “autoDestroy” est maintenant à true par défaut, ce qui fait que le flux appelle toujours “_destroy” à la fin.
L'avertissement concernant les modules expérimentaux a été supprimé
Dans Node.js 13, l'avertissement s'affichait lors de l'exécution de modules ECMAScript (ESM), en indiquant que le chargeur de modules ESM était expérimental. Bien que le support ESM reste expérimental dans le Node.js 14, l'avertissement ne s’affiche plus. La fonctionnalité n'est pas soumise aux règles de versionnement sémantique. Ainsi, des modifications ou des suppressions non rétrocompatibles peuvent survenir dans toute version future. Les utilisateurs doivent être prudents lorsqu'ils utilisent le dispositif dans des environnements de production.
Les binaires macOS sont maintenant compilés sur macOS 10.15 (Catalina) avec Xcode 11 pour supporter la notarisation des paquets. Sur les plateformes Linux, le niveau minimum de GCC reste à GCC 6, mais les binaires pour certaines plateformes passeront à GCC 8. Node.js 14 ne fonctionnera pas sur Windows en fin de vie. Ce sont là les fonctionnalités les plus notables de Node.js 14. Il passera en LTS (long time support) en octobre prochain. Pour info, Node.js 12 et Node.js 10 resteront en service à long terme jusqu'en avril 2022 et avril 2021 respectivement avant d’être complètement abandonnés. Comme toujours, les utilisateurs en entreprise doivent attendre le mois d'octobre pour mettre à niveau leurs déploiements de production, lorsque Node.js 14 sera promu au support à long terme.
Source : Note de version de Node.js 14
Et vous ?
Que pensez-vous des nouveautés apportées dans Node.js 14 ?
Voir aussi
Un projet Node.js sur deux audité par les outils de npm aurait au moins une vulnérabilité, une sur dix d'entre elles est critique
La version 12 de Node.js est disponible et serait 30 % plus rapide au démarrage que les versions précédentes
La version 13.0.0 de Node.js est publiée avec de nouvelles fonctionnalités et améliorations. Node.js 12.x est devenue la nouvelle version LTS
Node.js 14 est disponible avec un support expérimental de WebAssembly System Interface (WASI),
La fonctionnalité "rapport de diagnostic" est maintenant stable
Node.js 14 est disponible avec un support expérimental de WebAssembly System Interface (WASI),
La fonctionnalité "rapport de diagnostic" est maintenant stable
Le , par Bill Fassinou
Une erreur dans cette actualité ? Signalez-nous-la !