Une introduction à Yarn

Yarn est un gestionnaire de packages JavaScript, un concurrent direct de npm, l'un des projets Open Source de Facebook

Introduction au fil

Le fil est unJavaScriptPackage Manager, un concurrent direct denpm, et c'est l'un des projets Open Source de Facebook.

C'estcompatible avec les packages npm, il a donc le grand avantage de remplacer npm.

Quand il a été lancé, il était bien plus rapide quenpmen raison du téléchargement et de la mise en cache parallèles, mais maintenantnpma rattrapé plusieurs de ses fonctionnalités et est maintenant la solution que je recommande.

Les outils finissent par converger vers un ensemble de fonctionnalités qui les maintiennent au même niveau pour rester pertinents, nous verrons donc probablement ces fonctionnalités dans npm à l'avenir - la concurrence est agréable pour nous, utilisateurs.

Installer du fil

Bien que vous puissiez installer Yarn avecnpm(npm install -g yarn), ce n'est pas recommandé par l'équipe Yarn.

Les méthodes d'installation spécifiques au système sont répertoriées soushttps://yarnpkg.com/en/docs/install. Sur macOS par exemple, vous pouvez utiliserHomebrewet courir

brew install yarn

mais chaque système d'exploitation a son propre gestionnaire de paquets de choix qui rendra le processus très fluide.

En fin de compte, vous vous retrouverez avec leyarncommande disponible dans votre shell:

Yarn command installed

Gérer les packages

Yarn écrit ses dépendances dans un fichier nommépackage.json, qui se trouve dans le dossier racine de votre projet et stocke les fichiers de dépendances dans lenode_modulesdossier,juste commenpmsi vous l'avez utilisé dans le passé.

Initialiser un nouveau projet

yarn init

lance une invite interactive qui vous aide à démarrer rapidement un projet:

Running yarn init

Installer les dépendances d'un projet existant

Si vous avez déjà unpackage.jsonfichier avec la liste des dépendances mais les packages n'ont pas encore été installés, exécutez

yarn

ou

yarn install

pour démarrer le processus d'installation.

Installer un package localement

L'installation d'un package dans un projet se fait à l'aide de

yarn add package-name

Installer un package globalement

yarn global add package-name

Installer un package localement en tant que dépendance de développement

yarn add --dev package-name

Équivalent au--save-devdrapeau en npm

Supprimer un colis

yarn remove package-name

Inspection des licences

Lors de l'installation de nombreuses dépendances, qui à leur tour peuvent avoir beaucoup de dépendances, vous installez un certain nombre de packages, dont vous n'avez aucune idée de la licence qu'ils utilisent.

Yarn fournit un outil pratique qui imprime la licence de toute dépendance que vous avez:

yarn licenses ls

The yarn packages licenses visualized

et il peut également générer automatiquement une clause de non-responsabilité comprenanttoutles licences des projets que vous utilisez:

yarn licenses generate-disclaimer

Disclaimer generated by yarn

Inspecter les dépendances

Avez-vous déjà vérifié lenode_modulesdossier et me demande pourquoi un package spécifique a été installé?yarn whyvous indique:

yarn why package-name

The result of yarn why

Mise à niveau des packages

Si vous souhaitez mettre à niveau un seul package, exécutez

yarn upgrade package-name

Pour mettre à niveau tous vos packages, exécutez

yarn upgrade

Mais cette commande peut parfois entraîner des problèmes, car vous mettez à niveau aveuglément toutes les dépendances sans vous soucier des changements de version majeurs.

Yarn a un excellent outil pour mettre à jour de manière sélective les packages dans votre projet, ce qui est d'une grande aide pour ce scénario:

yarn upgrade-interactive

Upgrading packages with yarn

Comment mettre à niveau Yarn

Au moment de l'écriture, il n'y a pas de commande de mise à jour automatique.

Si vous avez utilisébrewpour l'installer, comme suggéré ci-dessus, utilisez:

brew upgrade yarn

Si à la place vous avez installé en utilisant npm, utilisez:

npm uninstall yarn -g
npm install yarn -g

Plus de tutoriels devtools: