Yarn
Yarn est l'un des principaux gestionnaires de paquets JavaScript[2] - [3], 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[4].
Développé par | Meta Platforms |
---|---|
Première version | |
Dernière version | 3.6.0 ()[1] |
Dépôt | github.com/yarnpkg/berry |
Écrit en | JavaScript et TypeScript |
Système d'exploitation | Multiplateforme |
Environnement | Multiplateforme |
Type | Application-level package manager (d) |
Licence | BSD 2-clauses (en) |
Site web | yarnpkg.com |
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[5].
- 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[6].
- Yarn installe des packages en parallèle, tandis que npm installe un package à la fois.
Syntaxe
Pour installer Yarn :
npm install -g yarn
Pour installer un paquet avec Yarn[7] :
yarn add nom-du-paquet --dev
NB : dans les premières versions, c'était :
yarn install package-name --save-dev
Références
- « Release 3.6.0 », (consulté le )
- « Package management basics », MDN,
- « 5 best JavaScript Package Managers », Dunebook.com,
- (en-US) « Yarn: A new package manager for JavaScript », Engineering at Meta, (consulté le )
- « Package Manager – NPM and Yarn Explained with Examples », Sitepoint,
- « How To Install and Use the Yarn Package Manager for Node.js », DigitalOcean,
- « Yarn vs npm: Everything You Need to Know », CodeSweetly,