Yarn

Un article de Wikipédia, l'encyclopédie libre.
Yarn
Description de l'image Yarn-logo-kitten.svg.

Informations
Développé par MetaVoir et modifier les données sur Wikidata
Première version Voir et modifier les données sur Wikidata
Dernière version 4.1.1 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/yarnpkg/berryVoir et modifier les données sur Wikidata
Écrit en JavaScript et TypeScriptVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Environnement MultiplateformeVoir et modifier les données sur Wikidata
Type Application-level package manager (d)Voir et modifier les données sur Wikidata
Licence BSD 2-clauses (en)Voir et modifier les données sur Wikidata
Site web yarnpkg.comVoir et modifier les données sur Wikidata

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].

Fonctionnalité[modifier | modifier le code]

Les utilisateurs peuvent écrire leurs propres plugins pour Yarn.

Contraintes[modifier | modifier le code]

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[modifier | modifier le code]

Les packages téléchargés sont mis en cache et stockés dans un seul fichier.

Plug'n'Play[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Release Workflow met automatiquement à niveau les packages relatifs parmi les espaces de travail monorepos lorsque les packages racine sont mis à niveau.

Espaces de travail[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

  • 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[modifier | modifier le code]

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

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Release v4.1.1 »
  2. « Package management basics », MDN,
  3. « 5 best JavaScript Package Managers », Dunebook.com,
  4. (en-US) « Yarn: A new package manager for JavaScript », Engineering at Meta, (consulté le )
  5. « Package Manager – NPM and Yarn Explained with Examples », Sitepoint,
  6. « How To Install and Use the Yarn Package Manager for Node.js », DigitalOcean,
  7. « Yarn vs npm: Everything You Need to Know », CodeSweetly,