title: Yarn
text: # Yarn
  
  Yarn est l'un des principaux gestionnaires de paquets $JavaScript^,,$ développé en 2016 par Facebook (maintenant Meta) pour l'environnement d'exécution JavaScript Node.js. Une alternative au gestionnaire de packages npm, Yarn a été créé en collaboration avec Facebook, Exponent (maintenant Expo.dev), Google et Tilde (la société derrière Ember.js) pour résoudre les problèmes de cohérence, de sécurité et de performances avec de grandes bases de code.
  
  ## Fonctionnalité
  
  Les utilisateurs peuvent écrire leurs propres plugins pour Yarn.
  
  ### Contraintes
  
  Les contraintes de Yarn permettent aux utilisateurs d'appliquer des règles pour leurs dépendances ou leurs champs de manifeste dans des espaces de travail délimités.
  
  ### Cache hors ligne
  
  Les packages téléchargés sont mis en cache et stockés dans un seul fichier.
  
  ### Plug'n'Play
  
  Plug'n'Play permet aux utilisateurs d'exécuter des projets Node sans dossier node_modules, en définissant la manière ou l'emplacement pour résoudre les fichiers de package de dépendances avec le fichier Plug-n-Play-control. Cette fonctionnalité vise à corriger une architecture node_modules mal structurée et résultant en un temps de démarrage de l'application Node.js plus rapide.
  
  ### Plugins
  
  Les plugins peuvent ajouter de nouveaux résolveurs, récupérateurs, éditeurs de liens, commandes, et peuvent également s'inscrire à certains événements ou être intégrés les uns aux autres. La plupart des fonctionnalités de Yarn sont implémentées via des plugins, y compris yarn add et yarn install, qui sont également des plugins préinstallés.
  
  ### Protocoles
  
  Les utilisateurs peuvent définir quel protocole sera utilisé pour résoudre certains packages, par exemple, le protocole git est utilisé pour télécharger un package public à partir d'un référentiel Git, et le protocole patch est utilisé pour créer une copie corrigée du package d'origine.
  
  ### Flux de travail de publication
  
  Release Workflow met automatiquement à niveau les packages relatifs parmi les espaces de travail monorepos lorsque les packages racine sont mis à niveau.
  
  ### Espaces de travail
  
  Les espaces de travail permettent à plusieurs projets de travailler ensemble dans le même référentiel et d'appliquer automatiquement les modifications à d'autres parents lorsque le code source est modifié, permettant l'installation de plusieurs packages en une seule passe en exécutant la commande d'installation une seule fois.
  
  ### Zéro installation
  
  Les zéro-installations résolvent les besoins d'installation de packages quand les packages doivent être installés lorsque les codes viennent d'être récupérés en local.
  
  ## Comparaison avec npm
  
  * Yarn peut installer des packages à partir du cache local.
  * Yarn lie fortement les versions du package.
  * Yarn utilise la somme de contrôle pour garantir l'intégrité des données, tandis que npm utilise SHA-512 pour vérifier l'intégrité des données des packages téléchargés.
  * Yarn installe des packages en parallèle, tandis que npm installe un package à la fois.
  
  ## Syntaxe
  
  Pour installer Yarn :
  
  Pour installer un paquet avec Yarn :
  
  NB : dans les premières versions, c'était :
  
  