web-dev-qa-db-fra.com

Comment installer des paquets globaux avec du fil

yarn install -h suggère que l'option -g (globale) est DEPRECATED. Comment suis-je censé indiquer que je veux qu'un paquet de paquets (à partir de fichiers package.json/yarn.lock) soit installé globalement?

Options que j'ai vues:

  • yarn global [command] a des choses telles que ls et add mais pas install. add ne fonctionne qu'avec des noms de paquet particuliers, si je comprends bien. J'ai déjà mon fichier yarn.lock prêt, je ne veux pas me répéter sur la ligne de commande.
  • yarn global add chaque paquet un par un. Maintenant, ma liste de paquets serait impérative au lieu de déclarative.

En particulier, j'aimerais utiliser un exécutable de l'un de ces packages.

55
jleeothon

Comment suis-je censé indiquer que je veux qu'un paquet de paquets (à partir de fichiers package.json/yarn.lock) soit installé globalement?

Vous ne devriez pas . Yarn décourage l'installation au niveau mondial, et il existe très peu de situations où cela est nécessaire, voire utile.

Comme indiqué dans la documentation :

Pour la grande majorité des paquets, il est considéré comme une mauvaise pratique d’avoir des dépendances globales car elles sont implicites. Il est bien préférable d’ajouter localement toutes vos dépendances afin qu’elles soient explicites et que toute autre personne utilisant votre projet obtienne le même ensemble de dépendances.

Si vous essayez d'utiliser un outil CLI doté d'une corbeille, vous pouvez y accéder dans votre répertoire ./node_modules/.bin.

Mais je le veux vraiment!

Si vous vraiment ne voulez pas écouter les conseils donnés, utilisez

yarn global add <package>

Cependant, ne vous attendez pas à installer facilement une énorme liste de dépendances au niveau mondial. Il est difficile de le faire par conception , car ce n'est pas une bonne idée.


Au lieu de cela, le flux prévu avec Yarn est:

  • installe tout localement pour que chaque projet soit isolé
  • appeler les fichiers binaires à partir de ./node_modules/.bin si possible
  • évitez les installations globales - elles sont pratiques, mais vous ne devriez pas vous en fier.
28
Aurora0001

Tapez simplement

yarn global add nodejs
52
vijay

Pour ceux qui sont intéressés, voici un moyen d’installer et de gérer des applications globales installées via fil.

Créez d’abord un répertoire qui contiendra les applications, par exemple ~/.yarn-global:

mkdir ~/.yarn-global
cd ~/.yarn-global

Ensuite, installez votre application à partir d'ici:

yarn add yourapp

Enfin, ouvrez votre fichier de profil, à savoir .bashrc ou .bash_profile, et ajoutez le chemin d'accès au répertoire bin:

export PATH="$PATH:$HOME/.yarn-global/node_modules/.bin"

A partir de maintenant, toute application que vous installez dans ce répertoire sera disponible depuis n'importe où dans votre Shell.

Une fois cela fait, vous pouvez même créer un script d’utilitaire yarn-global qui ne fonctionnera que dans ce répertoire .yarn-global. Par exemple:

Sudo vim /usr/bin/yarn-global
Sudo chmod 755 /usr/bin/yarn-global

Et le contenu du script serait:

#!/bin/bash
cd "$HOME/.yarn-global"
yarn $1 "$2"

Vous pouvez maintenant faire yarn-global add someapp, yarn-global upgrade someapp, etc.

12
laurent