Facebook annonce la disponibilité de Yarn,
Un nouveau gestionnaire de paquets JavaScript « plus rapide, plus fiable » et utilisable hors-ligne

Le , par Olivier Famien, Chroniqueur Actualités
À bien des égards, la sortie de Node.js a favorisé l’émergence de plusieurs solutions liées à cette plateforme. En effet, depuis la version 0.6.3 de Node.js, npm, le gestionnaire de paquets a été intégré à la plateforme Node.js afin de gérer les dépendances lors du développement des applications.

Facebook qui n’a pas dérogé à la règle a depuis longtemps adopté l’usage de npm pour le développement de ses projets JavaScript. Toutefois, la firme explique qu’elle a été confrontée à des problèmes impactant la cohérence, la sécurité et les performances du code à mesure que la taille de ses projets grandissait ainsi que le nombre d’ingénieurs travaillant sur les projets.

En effet, après avoir exécuté manuellement l’installation de npm, les ingénieurs ont noté que le gestionnaire de paquets fonctionnait correctement, mais affichait des pannes lorsqu’il tournait dans des environnements d’intégration continue qui nécessitent d’être exécutés dans un sandbox et hors ligne. Pour résoudre ce problème, les ingénieurs chez Facebook ont procédé, dans un premier temps, à la vérification de tous les modules node.js dans le dépôt.

Cela a fonctionné, mais des complications sont survenues en sorte que de simples opérations sont devenues difficiles à réaliser. Par exemple, effectuer de simples changements sur les modules node prenait toute une journée entière. Toujours en cherchant à régler les difficultés rencontrées, les ingénieurs de Facebook ont tenté de mettre à l’échelle le client npm en zippant le dossier entier des modules node, et en le chargeant sur le CDN interne de la firme en sorte que les ingénieurs puissent télécharger et extraire les fichiers dans le système d’intégration continue. Mais cela a entraîné un recours permanent à internet et surutilisation de la bande passante non seulement pour récupérer les fichiers, mais aussi pour les construire.

Pour résoudre définitivement tous ces problèmes, Facebook s’est tourné vers la mise en œuvre d’un nouveau gestionnaire de paquets dit plus fiable afin de gérer plus efficacement les dépendances. Cette solution se nomme Yarn et est le fruit de la collaboration entre les entreprises Exponent, Google et Tilde. Selon Facebook, ce gestionnaire de paquets comporte les mêmes fonctionnalités que les autres gestionnaires de paquets, mais est plus rapide, plus sûr et plus fiable.

« Avec Yarn, les ingénieurs ont toujours accès au registre npm, mais peuvent installer des paquets plus rapidement et gérer les dépendances de façon cohérente sur les machines ou dans des environnements hors ligne sécurisés », explique Facebook. La firme ajoute que « Yarn permet aux ingénieurs d’aller plus vite et avec confiance en utilisant le code partagé de sorte qu’ils puissent se concentrer sur ce qui importe — la conception de nouveaux produits et fonctionnalités ».

En plus d’être rapide, Yarn est doté des fonctionnalités suivantes :

  • Compatibilité avec les workflows npm et Bower et prise en charge du mélange de ces registres ;
  • Possibilité de restreindre les licences des modules installés et un moyen de fournir des informations de licence ;
  • Exposition d’une API JS publique stable avec la journalisation abstraite pour la consommation de cette dernière à travers des outils de construction ;
  • Lisible, minimal et belle conception de la sortie CLI.


Pour montrer l’utilité de Yarn, Facebook s’est livré à un petit test entre Yarn et npm sur React Native. Il en résulte que la cache est nettement plus rapide avec Yarn dans les différentes conditions des tests effectués. Facebook précise qu’elle utilise Yarn en production et confirme qu’il fonctionne très bien. Pour aider les autres développeurs à surmonter aisément les mêmes problèmes rencontrés par le réseau social et aussi pour encourager les développeurs à améliorer Yarn, Facebook annonce que Yarn est disponible sur GitHub sous licence open source.

Télécharger Yarn

Source : Facebook

Et vous ?

Que pensez-vous de ce nouveau gestionnaire de paquets JavaScript ?

Pensez-vous qu’il pourra se faire une place à côté du très célèbre gestionnaire de paquets, npm ?

Voir aussi

NodeSource dévoile N|Solid, une version de Node.js 4.0 orientée entreprise

La Rubrique Javascript, Forum JavaScript côté serveur, Cours et tutoriels JavaScript, FAQ de Javascript


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de 1franck 1franck - Membre du Club https://www.developpez.com
le 12/10/2016 à 17:20
Que pensez-vous de ce nouveau gestionnaire de paquets JavaScript ?

Voilà comment je me sens depuis que j'ai repris le dev web il y a quelques mois: https://hackernoon.com/how-it-feels-...6-d3a717dd577f
Avatar de twoitipoints twoitipoints - Membre à l'essai https://www.developpez.com
le 12/10/2016 à 17:54
pas faux !
Avatar de Derf59 Derf59 - Membre régulier https://www.developpez.com
le 13/10/2016 à 9:27
@1franck, excellent, c'est exactement ça et la raison pour laquelle ça ne m'intéresse pas actuellement de m'investir dans le(s) Javascript(s).
Avatar de Shuty Shuty - Membre éprouvé https://www.developpez.com
le 14/10/2016 à 14:11
Franchement ? J'adore le lien ! Ca me rappel mes début en JS (es6, npm, promises, async, await, node, npm, bower, browserify, gulp, webpack, react, angular....) tous ces mots étaient du chinois

Après quand on mets les mains dans le cambouis on se rends rapidement compte de l'importance et l'intérêt de chacune de ces libs ! En tout cas, aujourd'hui je suis un addict au JS.
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 16/10/2016 à 1:25
Il y a des centaines de projets open-source qui naissent chaque jour avec un nom différent. Ça ne veut pas dire que vous devez tous les connaître et tous les utiliser. Mais le jour où vous en aurez besoin, vous serez bien contents que quelqu'un ait fait le travail pour vous et le partage gratuitement.

Je trouve ça vraiment insensé de se plaindre qu'un écosystème logiciel soit "trop" actif. Si vous vous sentez débordés, ce n'est pas aux créateurs de freiner la cadence, c'est à vous de cibler davantage votre veille technologique. Parce qu'apprendre c'est le coeur de métier du développeur, il faut "apprendre à apprendre".

Pour revenir à Yarn, mes premières impressions me le font voir comme un NPM 3 fois plus rapide avec des commandes légèrement simplifiées. J'ai fait la transition sur quelques projets sans problème particulier et sans me poser de questions. Plus rapide, plus sécurisé et plus simple à l'usage, je pense l'utiliser systématiquement à la place de NPM dorénavant.
Offres d'emploi IT
Intégration HW numérique et FPGA
KAÏNA-COM - Ile de France - 91000 - Salaire à négocier
Developpeur Back-end .NET / C# / MVC H/F
Bspp Sourcing - Ile de France - Paris (75008)
Développeur Java F/H
Zenika - Ile de France - Paris (75000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil