Yarn

Yarn est un gestionnaire de paquets pour l’écosystème JavaScript, créé par Facebook (Meta) en 2016 en réponse aux lenteurs et aux problèmes de fiabilité de npm à l’époque. Il permet d’installer, de mettre à jour et de gérer les dépendances (bibliothèques, frameworks, outils) d’un projet de développement web ou Node.js.

Ses fonctions principales :

  • Installer des paquets : depuis le registre npm (le plus grand catalogue de bibliothèques JavaScript) ou depuis d’autres sources.
  • Résoudre les dépendances : gérer les versions et les conflits entre les bibliothèques.
  • Verrouiller les versions : garantir que tous les développeurs d’une équipe utilisent exactement les mêmes versions (via le fichier yarn.lock).
  • Exécuter des scripts : lancer des tâches définies dans le fichier package.json (tests, build, démarrage du serveur…).

Analogie

Comme un chef de chantier pour la construction d’une maison JavaScript :

  • Le registre npm est un gigantesque entrepôt de matériaux (bibliothèques) où chaque pièce est référencée.
  • npm est un livreur qui apporte les pièces une par une.
  • Yarn est un contremaître plus organisé : il liste toutes les pièces nécessaires (dans un plan), vérifie leur compatibilité, les commande en parallèle (plus rapide), et stocke une copie de chaque pièce pour les prochains chantiers (cache).
  • Grâce à son carnet de bord (yarn.lock), il s’assure que chaque ouvrier (développeur) utilise exactement les mêmes pièces, évitant ainsi les mauvaises surprises.

Yarn vs npm : différences clés

CritèreYarn (classique)npm (actuel)
Année de création20162010
Vitesse d’installationPlus rapide (grâce au cache et au parallélisme)Très rapide (amélioré depuis la v5)
Fichier de verrouillageyarn.lockpackage-lock.json
Cache localStocke les paquets téléchargés pour les réutiliserStocke aussi, mais de manière moins efficace à l’origine
WorkspacesSupport natifSupport natif (depuis npm v7)
Mode hors ligneOui (réinstalle les paquets depuis le cache)Oui (depuis npm v5)
Interface en ligneCommandes plus concises (yarn add vs npm install)Commandes plus longues

Commandes essentielles

ActionnpmYarn
Installer toutes les dépendancesnpm installyarn ou yarn install
Ajouter un paquetnpm install <paquet>yarn add <paquet>
Ajouter un paquet en devnpm install <paquet> --save-devyarn add <paquet> --dev
Mettre à jour un paquetnpm update <paquet>yarn upgrade <paquet>
Supprimer un paquetnpm uninstall <paquet>yarn remove <paquet>
Exécuter un scriptnpm run <script>yarn <script> (plus court)

Les versions de Yarn

Il existe aujourd’hui deux versions majeures de Yarn :

VersionParticularité
Yarn 1.x (Classic)La version historique, encore très utilisée, compatible avec npm.
Yarn 2.x / 3.x (Berry)Une refonte majeure avec des Plug’n’Play (PnP) : au lieu de créer un lourd dossier node_modules, Yarn génère un fichier qui pointe directement vers les paquets. Plus rapide, plus fiable, mais moins compatible avec certains outils.

Pourquoi choisir Yarn ?

Avantages :

  • Installation plus rapide sur les gros projets
  • Fiabilité des versions grâce au lockfile
  • Interface un peu plus agréable (commandes courtes)
  • Workspaces natifs pour les monorepos
  • Sécurité renforcée (checksums)

Inconvénients :

  • Moins adopté que npm (moins de documentation tierce)
  • Yarn 2/3 peut causer des problèmes de compatibilité
  • npm a beaucoup rattrapé son retard (notamment en performance)

À retenir

Yarn offre une expérience souvent plus fluide et rapide, avec des fonctionnalités avancées pour les gros projets.

Yarn et npm sont deux magasins concurrents qui vendent les mêmes briques (les paquets du registre npm). La différence réside dans la manière de les gérer :

npm est le standard historique, intégré par défaut avec Node.js.

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.