Yarn est un nouveau gestionnaire de dépendances pour NodeJS qui propose une approche plus rapide et plus sécurisée que le gestionnaire historique npm.
Qu'est ce qui ne va pas avec NPM ?
Avant de commencer à parler d'un nouvel outil il est important de comprendre les limitations de ce qui existe déjà.
Des dépendances non figées
Lors d'un npm install —save
les dépendances sont récupérées avec un numéro de version "compatible avec". Par exemple un npm install jquery va ajouter la ligne suivante dans le fichier package.json ^3.1.1
qui indique à NPM de télécharger une version de jQuery >= 3.1.1
et < 4.0.0
. Ainsi 2 personnes qui initialise le projet à un moment différent peuvent se retrouver avec des versions différentes et avoir des bugs différents malgré un fichier package.json identique.
Une installation lente
L'autre problème de npm est son extrème lenteur. En effet, à chaque nouveau npm install
, il va récupérer les dépendances depuis les dépôts puis les dépendances de ces dépendances et ainsi de suite. Cette résolution en cascade peut rapidement prendre pas mal de temps suivant la taille de votre projet.
Yarn
Créé par Facebook yarn propose de régler ces différents problèmes tout en se reposant (pour le moment) sur l'écosystème déjà construit par npm.
- Yarn utilise le package.json pour définir les dépendance et les récupère depuis npmjs
- Lors de la récupération des dépendances un fichier
yarn.lock
est généré et contient la liste de toutes les dépendances du projet avec leur numéro de version. Ce fichier permet aux autres personnes travaillant sur le projet de récupérer les mêmes dépendances. - Un cache global permet de ne pas retélécharger les même dépendances à chaque projet..
Vous pouvez essayer yarn dès maintenant à la place de vos commandes npm habituelles.