<p>yarn global add n'installe pas correctement les binaires</p>

Créé le 11 oct. 2016  ·  120Commentaires  ·  Source: yarnpkg/yarn

Voulez-vous demander une _fonctionnalité_ ou signaler un _bug_?
_punaise_

Quel est le comportement actuel?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
create-react-app not found

Quel est le comportement attendu?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
/usr/local/bin/create-react-app

Veuillez mentionner votre node.js, votre fil et la version de votre système d'exploitation.

➜  ~  system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.12 (16A323)
      Kernel Version: Darwin 16.0.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled

➜  ~ node --version
v6.7.0
➜  ~  yarn --version
0.15.1
cat-bug cat-compatibility

Commentaire le plus utile

Exécutez yarn global bin et ajoutez-le à votre $PATH .

Tous les 120 commentaires

Le même comportement ici, sur le même système.

Juste une note pour préciser que ce n'est pas unique à create-react-app. mean-cli par exemple, soulève le même problème.

Également obtenu ceci sur le système Ubuntu 15.10

Exécutez yarn global bin et ajoutez-le à votre $PATH .

Cela le corrige. Mais cela n'est en aucun cas documenté ici: https://yarnpkg.com/en/docs/cli/global
(Je veux dire que oui yarn global bin est documenté mais l'exemple ne suggère pas qu'il soit nécessaire de l'ajouter à votre PATH)

Sur ma machine, cela renvoie /usr/local/Cellar/node/6.7.0/bin . Cela signifie-t-il que tous mes binaires globaux sont liés à cette version de nœud et que si je mets à jour, je dois les réinstaller? Cela semble compliqué, n'est-ce pas?

Une autre chose que j'ai remarquée est que "$(yarn global bin)" renvoie ^[[2K^[[1G/usr/local/Cellar/node/6.7.0/bin . Est-ce que je fais quelque chose de mal lorsque j'essaye d'ajouter export="${PATH}:$(yarn global bin)" à mon .zshrc ?

Ce n'est pas documenté AFAIK. Ça devrait être. N'hésitez pas à soumettre un PR.
Lisez ceci pour comprendre pourquoi le chemin global est spécifique à la version.

@wokalski êtes-vous sûr d'avoir référencé le bon problème? Je ne comprends même pas pourquoi cela est lié ...

@Fahrradflucht désolé! Corrigé.

OK, j'ai compris!

Ensuite, je me retrouve avec cette question:

Une autre chose que j'ai remarquée est que "$ (yarn global bin)" renvoie ^ [[2K ^ [[1G / usr / local / Cellar / node / 6.7.0 / bin. Est-ce que je fais quelque chose de mal lorsque j'essaye d'ajouter export = "$ {PATH}: $ (yarn global bin)" à mon .zshrc?

Je déposerais un nouveau problème si j'étais plus sûr de ne pas avoir fait une erreur stupide 😁

@Fahrradflucht Ce n'est pas seulement vous que j'ai le même problème sur macOS en utilisant le vieux bash.

export PATH="/usr/local/Cellar/node/6.3.1/bin:$PATH"

travaux

export PATH="$(yarn global bin):$PATH"

Ne fait pas. J'ai ouvert un problème; https://github.com/yarnpkg/yarn/issues/851

yarn global bin est /usr/bin sur mon système. Je veux que ce soit /usr/local/bin pour me sauver des maux de tête permanents.

Maintenant que j'y pense ... pourquoi yarn global bin retourne-t-il pas ~/.yarn-cache/.global/node_modules/.bin/ ?

@kaihendry Parce que Yarn a été installé par Homebrew

Mêmes problèmes sur macOS

Yarn ne semble pas installer de binaires dans $(yarn global bin) , ce qui, depuis que j'utilise nvm sous OSX, est /Users/username/.nvm/versions/node/v6.9.2/bin

Après avoir fait yarn global add nodemon il est introuvable, et rien dans une installation détaillée ne semble montrer qu'il met des fichiers dans un répertoire bin.

METTRE À JOUR

yarn global remove nodemon et yarn global add nodemon corrigé et placez-le correctement dans $(yarn global bin) . Toujours rien dans le journal détaillé cependant ...

exactement le même problème que @ c0bra a déclaré.

Je vois un rapport qui a été corrigé dans 0.20 RC. Quelqu'un peut-il vérifier s'il vous plaît?

Je viens de rencontrer ce problème avec la v0.20.0 mais je l'ai résolu en supprimant et en rajoutant le package comme @ c0bra mentionné.

Ne fonctionne toujours pas pour moi dans la v0.20.3:

$ cd $(yarn global bin)
$ ls 
tern@  yarn@  yarnpkg@
$ yarn global add ember-cli
yarn global v0.20.3
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
warning No license field
Done in 3.81s.
$ cd $(yarn global bin)
$ ls
tern@  yarn@  yarnpkg@

Toujours cassé dans 0.20.3 installé via homebrew sur macOS.

J'ai eu le même problème aujourd'hui (installation homebrew, fil v0.20.3). J'ai pensé que j'avais oublié d'exporter le dossier bin vers mon PATH avant d'installer les packages globaux. Je l'ai exporté en utilisant:
export PATH="$(yarn global bin):$PATH"
puis la suppression et la réajout de packages globaux ont correctement lié les binaires. (Merci @ c0bra)

Pour moi (macOS Sierra et yarn 0.21.3 via Homebrew), cela fonctionne maintenant pour moi (là où ce n'était pas avant). J'ai dû yarn global remove ----- && yarn global add ---- .

J'ai rencontré le même problème avec @erizocosmico en utilisant Yarn v0.21.3 (j'utilise nvm). Correction de cela en suivant les étapes:

  1. Ajoutez ce qui suit dans mon fichier .zshrc :
export PATH="$(yarn global bin):$PATH"
  1. yarn global remove [package-name] puis yarn global add [package-name]

Le seul problème peut être que le package est en fait installé dans le /usr/local/Cellar/node/7.7.1/bin , car lors de l'installation de Yarn via Homebrew, il installerait également .zshrc été exécuté sous le chemin de HOME, le package global serait toujours installé dans le dossier bin de Homebrew's Node.

  1. Les correctifs ici ne sont que temporaires. Lorsqu'une nouvelle mise à jour de nœud arrive, vos packages globaux cesseront de fonctionner et devront être réassociés. Passé pour les packages globaux à npm pour le moment.

  2. De plus, si vous avez des packages globaux installés via npm , yarn n'en sera pas conscient.

Comment j'ai résolu cela:

  1. $ yarn global remove ___

  2. Assurez-vous que NVM est d'origine avant d'ajouter Yarn à votre PATH

# First...
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

# Then...
export PATH="$(yarn global bin):$PATH"
  1. $ yarn global add ___

  2. Confirmer le chemin d'installation global du package

$ which ___
# Should give you...
/path/to/nvm/versions/v7.6.0/bin/___

J'ai essayé les solutions proposées ci-dessus, et cela n'a pas fonctionné pour moi.
J'ai vu que cela pouvait être causé par les différentes façons d'installer yarn, et par l'emplacement des binaires de fil (dans mon cas, yarn a été installé avec apt-get , et il est disponible sous /usr/bin )

L'erreur que j'ai eue lors de l'installation de braise était:

$ yarn global add ember-cli
yarn global v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
error We don't have permissions to touch the file "/usr/bin/ember".

Faites attention à la dernière ligne:
yarn a essayé de mettre le bac de braises dans le dossier (racine): /usr/bin

À ce stade, j'ai trouvé deux alternatives:

  • a) sudo yarn global add ember-cli
    L'installation de braise avec sudo fonctionne, car alors le fil peut écrire dans /usr/bin
  • b) placez le dossier yarn/global/node_modules/.bin dans le $ PATH; par exemple, en ajoutant quelque chose comme ça à la fin de votre fichier .(whatever)rc :
    export PATH=$PATH:$GOBIN:~/.config/yarn/global/node_modules/.bin/
    De cette façon, les binaires globaux de fils seront disponibles au $PATH

Cela a fonctionné pour moi!

  1. Ajoutez ce qui suit dans mon fichier .zshrc:
    export PATH = "$ (bin global de fil): $ PATH"
  2. yarn global remove [nom-package] puis yarn global add [nom-package]

Même ici:

yarn --version
0.21.3
yarn global add mocha
success Installed "[email protected]" with binaries: [..]
$ mocha
-bash: mocha: command not found

Je l'ai fait fonctionner en utilisant:
npm install --global mocha

la mise à niveau avec homebrew pose un autre problème, car les bacs installés avec du fil ne sont pas déplacés. Voici ce que j'avais:

$ yarn global bin
/usr/local/Cellar/node/7.4.0/bin
$ ls $(yarn global bin)
bower     ember     node      phantomjs

maintenant mettre à jour:

$ brew update && brew upgrade

et maintenant ceci:

$ yarn global bin
/usr/local/Cellar/node/7.8.0/bin
$ ls $(yarn global bin)
node

appelant braise:

$ ember
-bash: ember: command not found

Les binaires ont disparu, il faut les déplacer manuellement 😦

Mac OS X

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.8.0
npm --version
4.2.0
yarn --version
0.22.0

J'ai essayé de mettre:
export PATH="$(yarn global bin):$PATH"
dans mon fichier .zshrc comme suggéré ci-dessus ... redémarré mon terminal, rien ne se passe. J'ai même redémarré ma machine. Rien ne se passe.

J'ai essayé de taper l'extrait de code ci-dessous dans mon .zshrc:
export PATH="$PATH: bin global de fils "
cela est suggéré sur https://yarnpkg.com/en/docs/install#mac -tab mais rien ne se passe.

D'autres suggestions? :)

J'ai perdu mon exécutable ember après la mise à niveau vers yarn v0.22.0:

$ brew update && brew upgrade

Cependant, le supprimer et l'ajouter à nouveau a résolu le problème pour moi:

$ yarn global remove ember-cli
$ yarn global add ember-cli

oui c'est la solution de contournement. mais nous devrions trouver un moyen de mettre à jour et de déplacer facilement des éléments vers un nouveau répertoire lorsque le nœud est mis à jour.

pourquoi n'y a-t-il pas de liste pour les packages globaux? y a-t-il une raison pour laquelle nous n'avons pas comme .yarnrc.json ou .package.json ou quelque chose, et là-dedans, nous avons un fichier de package normal avec une liste de dépendances, que seront les packages globaux installés?

quand j'exécute yarn global bin , l'erreur: No such file or directory: 'global' , je ne suis pas sûr de ce qui ne va pas.
fil - version n ° 0.22

yarn global remove typescript && yarn global add typescript problème résolu pour moi.

OSX: El Capitan.
Nœud: 4.7.2 (à n)

Vous rencontrez actuellement ce problème après la mise à niveau de 0.17 à 0.22 . Le correctif suggéré ici fonctionne, mais je n'avais pas à le faire dans le passé, ce qui me porte à croire qu'il s'agit d'un bogue.

Mac OS X

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.9.0
npm --version
4.2.0
yarn --version
0.23.2

J'ai essayé de mettre ces extraits de code dans mon profil .zshrc -> 1, 2 et 3.

  1. Selon les recommandations ci-dessus:
    export PATH="$(yarn global bin):$PATH"
  1. Selon https://yarnpkg.com/en/docs/install
    export PATH="$PATH: bin global de fils "

  2. J'ai essayé de ne rien avoir des codesnippets dans mon .zshrc.

J'ai redémarré mon terminal, rien ne se passe.
J'ai même redémarré ma machine. Toujours rien.

J'ai eu ce même problème et c'était ma solution:

Problème

  • yarn a été installé avec brew
  • l'utilisation de yarn global add ... n'installe pas sur le chemin retourné par yarn global bin qui dans mon cas est /usr/local/Cellar/node/7.9.0/bin
  • le chemin réel où yarn global add ... installe les packages est ~/.config/yarn/global/node_modules/.bin

Solution

  • Ajoutez ceci à ma configuration de chemin:
export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"

Détails du système

Mac OS 10.12.4 (16E195)
zsh --version
zsh 5.3.1 (x86_64-apple-darwin16.3.0)
node --version
v7.9.0
yarn --version
0.23.2
brew --version
Homebrew 1.1.12
Homebrew/homebrew-core (git revision a29be4; last commit 2017-04-14)

J'ai un problème similaire. La sortie de yarn global bin est /usr/local/bin . Installer gulp-cli globalement sans sudo ( yarn global add gulp-cli ) donne error We don't have permissions to touch the file "/usr/local/bin/gulp" . L'installation globale avec sudo ( sudo yarn global add gulp-cli ) réussit, mais l'exécution de gulp génère bash: gulp: command not found .

Aussi très particulier: exécuter sudo gulp succeds (deviner quelque chose qui ne va pas avec les perms, entrer dans /usr/local/bin et exécuter ./gulp donne l'autorisation refusée, mais exécuter avec sudo fonctionne), exécuter yarn global ls ou sudo yarn global ls sorties

yarn global v0.22.0
warning No license field
Done in 0.26s.

J'utilise Arch Linux avec npm 4.5.0, yarn 0.22.0 et node v7.7.3.
Et oui, /usr/local/bin est évidemment dans mon chemin pour mon utilisateur et l'utilisateur root.

EDIT (chemins racine et utilisateur):

[steventheevil@Steven-PC Downloads]$ su
Password: 
[root@Steven-PC Downloads]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin
[root@Steven-PC Downloads]# exit
exit
[steventheevil@Steven-PC Downloads]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin

Idem sur ArchLinux.

Dans mon cas, le package yo (et d'autres) a été installé sur /home/agilob/.config/yarn/global/node_modules/yo/lib . J'essaye d'utiliser jhipster, mais yanr prétend qu'il utilise /usr/bin pour installer les packages:

$ yarn global bin
/usr/bin

Il n'a même pas les privilèges pour créer des fichiers là-bas.

Exécution de la commande:
/home/agilob/.config/yarn/global/node_modules/yo/lib/cli.js jhipster fonctionnait correctement.

Merci @bcessa , $HOME/.config/yarn/global/node_modules/.bin fonctionne comme prévu.

Je vois également le problème de non-synchronisation du chemin global bin :

  • macOS 10.12.4
  • node.js LTS installé à partir de nodejs.org pkg
  • fil installé par le script d'installation
$ which node
/usr/local/bin/node

$ node --version
v6.10.2

$ which yarn
/Users/jdub/.yarn/bin/yarn

$ yarn --version
0.23.2

$ yarn global bin
/usr/local/bin

# But yarn global add installs to ~/.config/yarn/global, so I've added it to my path, e.g.

$ which testim
/Users/jdub/.config/yarn/global/node_modules/.bin/testim

@OmgImAlexis Pas sûr qu'il s'agisse d'un doublon clair - il existe des exemples de problème qui n'impliquent pas de nœud ou de fil installé à partir de homebrew.

Tout va bien, toujours agréable d'avoir une référence entre les problèmes au cas où un seul commit résoudrait les deux problèmes. 👍

Également expérimenté avec le fil 0.22 sur framboise 😃

les packages installés dans le monde entier tels que CRA, eslint, etc. fonctionnent juste pour moi.

mais yarn global ls ne montre rien d'autre que fait

Ce problème est également présent lorsque node est installé par nvm, je ne pense pas que ce soit spécifique à l'homebrew.

$(yarn global bin) est déjà sur mon chemin, mais par exemple:

> nvm install 6.10.2
> npm install -g yarn
> which yarn
~/.nvm/versions/node/v6.10.2/bin/yarn
> yarn global bin
~/.nvm/versions/node/v6.10.2/bin
> yarn global add yo
> ls ~/.nvm/versions/node/v6.10.2/bin
node    npm     yarn    yarnpkg

Dans cet exemple, yarn global add yo ne génère pas le binaire yo dans le chemin bin.

Ici, j'ai ajouté quelques tests ici: https://github.com/yarnpkg/yarn/pull/3238 et pour moi, c'est fermé. Il y a des cas secondaires, mais il y a d'autres problèmes.

@bestander

fil installé à partir de yarn-0.23.4.msi, plateforme: Windows 10, MinGW.
Ma commande globale ne fonctionne pas après l'ajout global de fil * .
Il semble que le fil stocke les packages mondiaux dans:

%USERPROFILE%\AppData\Local\Yarn\config\global\node_modules\.bin

La commande globale fonctionne après l'avoir ajoutée au chemin système.

Je rencontre également ce problème en utilisant nvm.

Même problème là-bas:

sharikovvlad:global svlad$ node -v
v7.10.0
sharikovvlad:global svlad$ yarn --version
0.24.4
sharikovvlad:global svlad$ sw_vers -productVersion 
10.12.4
# macOS Sierra 10.12.4

J'ai installé du fil avec le gestionnaire de paquets de bière.

J'ai évidemment résolu le problème en ajoutant ceci à .bash_profile :

export PATH="$(yarn global bin):$PATH"sharikovvlad:~ svlad$

Mais évidemment, tous les packages seront cassés après la mise à jour du nœud.

J'ai essayé de filer globalement ajouter ios-deploy. Le binaire existe dans ~ / .config / yarn / global / node_modules / ios-deploy / build / Release / mais pas dans / usr / local / bin ou tout autre emplacement, qui se trouve dans le PATH.

Même problème dans Node v7.8.0 et Yarn version v24.6 ... J'ai également essayé d'utiliser le drapeau --prefix

yarn global add prettier --prefix /Users/newuser/.nvm/versions/node/v7.8.0/

Ça ne marche pas.

Je ne sais pas pourquoi ce problème est fermé, si les gens ont toujours du mal à déterminer où le diable met les binaires, en les installant apparemment dans un ou plusieurs dossiers (.config et .npm) mais en pointant vers un autre (cellar), & si le site Web de fils n'a pas clairement documenté ce problème avec des recommandations de clarté.

Je n'arrive pas à faire en sorte que mon éditeur Atom trouve et utilise mon eslint global installé par yarn.

J'ai réussi à contourner cela. Le problème semble être que la version Homebrew de Node s'ajoute au PATH plus tard que l'installation NVM. Une fois que j'ai compris cela, tout ce que j'ai fait était de désinstaller le Node Homebrew installé, et cela a fonctionné.

@volkanunsal, je ne suis pas sûr de comprendre ce que vous voulez dire

Désolé, ce que je voulais dire, c'est que dans mon cas, le problème était que j'avais aussi un autre
installation de Node. Le chemin de cette installation a été ajouté après la NVM
l'installation, et prenait donc la priorité. C'est là que le fil mettait
les packages globaux, mais ce n'était pas le nœud que j'utilisais donc mes commandes
le package que j'ai installé avec yarn global échouait. Ce n'est peut-être pas le
même problème dans votre cas, mais j'ai pensé qu'il valait la peine d'être mentionné. Lorsqu'il ya
sont plusieurs installations de Node, Yarn utilisera celle dont le chemin est
le plus récemment ajouté au PATH de votre machine.

Pour moi, corrigé en définissant le préfixe de fil et en réinstallant tous les modules

yarn config set prefix $(npm config get prefix)

Lorsque vous changez de version de nœud via nvm, mon yarn global bin ne se met pas à jour, ce qui semble également être la cause première du problème.

METTRE À JOUR:
Même après avoir corrigé le problème manuellement yarn global bin en supprimant le dossier ~/.yarn et en le réinstallant.
yarn global add appium ne crée toujours rien dans le dossier bin global. Cette fonctionnalité semble être complètement cassée ...

La résolution évoquée ici semble y remédier. Ajoutez ceci à .bash_profile

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

Non, pas vraiment. Cela fonctionne pour les situations où vous avez accès à votre .bash_profile . La plupart des programmes eux-mêmes ne l'ont pas (exécutez npm test et votre package.json utilise un binaire, qui est globalement installé avec yarn, vous n'avez pas de chance). Si vous installez quelque chose de manière globale, il devrait être instantanément disponible sans autre configuration. C'est bien si les binaires sont installés dans un dossier spécifique à Yarn n'importe où sur le disque tant qu'il y a un lien symbolique vers /usr/lobal/bin .

Mes tests pour cette commande seraient (systèmes de type Unix):

  • Après l'installation du package, des liens symboliques pour les binaires sont créés vers /usr/local/bin .
  • Après la mise à niveau des packages globaux, assurez-vous que les liens symboliques fonctionnent toujours
  • Après la mise à niveau de yarn (et potentiellement en gardant les paquets installés globalement quelque part dans un dossier versionné de yarn, par exemple path/to/yarn/vX.Y.Z/packages/... ), assurez-vous que les liens symboliques fonctionnent toujours

Comportement similaire au fonctionnement de Homebrew.

C'est un gros problème lorsque vous essayez d'utiliser Yarn dans un conteneur Docker.

@gossi , ce n'est pas un problème avec une solution simple.
Sur de nombreux OS / usr / local / bin n'est pas disponible, vous pourriez avoir besoin d'un accès root, un seul emplacement peut ne pas suffire si vous utilisez plusieurs versions de Node (nvm).

N'hésitez pas à proposer une solution idéale.

@bestander ok, /usr/local/bin est disponible;)
Nvm est un autre problème qui devrait être subordonné à cela pour jouer main dans la main.

@bestander comment NPM résout-il ce problème? Leur solution est-elle applicable?

Y a-t-il quelqu'un là-bas qui veut comprendre tous ces CHEMINS de bacs mondiaux à travers OS?
N'hésitez pas à lancer un nouveau numéro et à envoyer des PR.
Le code qui met à jour les bins globaux est ici https://github.com/yarnpkg/yarn/blob/master/src/cli/commands/global.js#L72 , semble assez simple.

Je pense que nous pouvons avoir une excellente expérience utilisateur ici, mais nous avons besoin d'aide.

@bestander Je pense que le problème est dans updateCwd

envoyer un PR :)

J'ai toujours ce problème :(

@JikkuJose Je rencontre toujours ce problème également. J'utilise la commande yarn global add prettier . Prettier est installé sur le chemin .config/yarn/global/node_modules .

J'ai ajouté yarn global bin à mon $PATH (sur mon système c'est /usr/local/bin ), mais ce n'est pas utile quand ce n'est pas là que les choses sont installées.

version fil: 0.27.5
version du nœud: v6.11.1

J'utilise la commande suivante pour installer Gulp:

$ yarn global add gulp

Mais cela ne me montre rien:

$ ls -lah `yarn global bin` | grep gulp

$ cat /etc/issue
Ubuntu 17.04 \n \l
$ uname -a
Linux intrepid 4.10.0-28-generic #32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ node --version
v8.1.3
$ nvm --version
0.33.2

comment est-ce toujours un problème? npm n'en souffre pas.

juste en disant.

J'ai arrêté d'utiliser du fil uniquement à cause de cela. : /: /

Je me débrouillais bien jusqu'au fil 1.1.0, maintenant mes globaux ne sont pas trouvés

success Installed "[email protected]" with binaries:
      - bower
✨  Done in 10.40s.
 $ bower
fish: Unknown command 'bower'
$ uname -a
Darwin wpa-25-242.dyn.huji.ac.il 16.3.0 Darwin Kernel Version 16.3.0: Thu Nov 17 20:23:58 P
ST 2016; root:xnu-3789.31.2~1/RELEASE_X86_64 x86_64

@hookdump @Spongman @bennypowers comme vous pouvez le voir, ce problème est fermé. Ce serait formidable si vous pouviez déposer un nouveau problème avec les étapes de reproduction et quelques détails sur la configuration de votre système (par exemple, essayez-vous cela en tant qu'utilisateur root, quel dossier yarn utilise par défaut est activé en écriture, etc.) quelqu'un peut reproduire et démarrer J'y travaille.

Que quelqu'un peut aussi être vous si vous êtes intéressé!

Et puis liez-le ici s'il vous plaît, car c'est là que Google a envoyé tout le monde.

Peut-être que @hookdump , @Spongman ou @bennypowers ont le même problème que moi? https://github.com/yarnpkg/yarn/issues/4702 ?

Pourquoi le problème est-il résolu alors qu'il se produit encore?

@yordis utilisez-vous zsh ?

si tel est le cas, le problème # 4702 pourrait être lié à votre problème

si votre environnement PATH n'est pas correctement défini, vous devez résoudre ce problème. Exécutez yarn global bin et echo $PATH pour commencer à creuser le problème résolu

ne devrait pas être fermé. ont toujours le problème.

@ lili21 veuillez déposer un nouveau problème.

J'ai le même problème, en utilisant zsh. yarn global bin renvoie /home/dandv/.yarn/bin , qui n'est pas dans $ PATH.

~ yarn global add polymer-cli
yarn global v1.3.2
[1/4] Resolving packages...
warning polymer-cli > [email protected]: ...psst! Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: https://bower.io/blog/2017/how-to-migrate-away-from-bower/
warning polymer-cli > [email protected]: 🙌  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! 
warning polymer-cli > polyserve > @types/[email protected]: See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/12826
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - polymer
Done in 25.08s.
➜  19:17 polymer
zsh: command not found: polymer
➜  19:17 polymer-cli init
zsh: command not found: polymer-cli
➜  19:17 yarn --version
1.3.2

comment est-ce toujours un problème? npm n'en souffre pas.

Déterminez ensuite comment npm le gère et envoyez une pull request?

La seule réponse du propriétaire de ce repo à cet énorme fil de plaintes à propos de ce problème est le cri séculaire des échecs de qualité OSS partout: "réparer vous-même"?

Les projets open source sont des projets communautaires. Yarn n'est pas seulement construit par les développeurs de Facebook, mais par une communauté open source plus large. Je travaille chez Facebook mais ce n'est pas vraiment lié à mes contributions à Yarn, car généralement j'y ai travaillé en dehors des heures de travail.

Je suis juste fatigué que les gens pensent que la communauté leur doit quelque chose, sans rien rendre en retour. Certains développeurs open-source désactivent désormais la section "problèmes" de leurs dépôts GitHub pour cette raison. En particulier pour les projets avec une petite équipe de développement, essayer de travailler sur chaque problème est un moyen facile de s'épuiser. La licence que vous acceptez lors de l'installation de tout logiciel sous licence BSD ou MIT (y compris Yarn) spécifie explicitement que le logiciel est fourni tel quel, sans garantie ni garantie d'adéquation à un usage particulier.

Nous avons un dicton sur Facebook: "Le code gagne les arguments". Plutôt que de vous plaindre de quelque chose, prenez le temps de le réparer. c'est une utilisation plus productive du temps. C'est tout l'esprit de l'open-source: une communauté de personnes contribuant à un objectif commun.

En ce qui concerne ce problème, il me semble que le répertoire exécutable de Yarn est absent des $PATH des gens. Le programme d'installation vous indique explicitement comment l'ajouter à votre chemin, et le programme d'installation de Windows le fera automatiquement pour vous (nous devrions probablement commencer à le faire dans le paquet Debian également). La raison pour laquelle j'ai suggéré de vérifier ce que fait npm est qu'ils peuvent modifier automatiquement le $PATH . Quelqu'un aurait besoin de faire cette enquête et de voir ce qu'il fait. Tout le monde peut le faire.

Je viens également de rencontrer ce problème. La première fois que vous avez essayé le fil + le colis, cela n'a pas fonctionné à cause de cela.

Pourquoi ce problème est-il fermé alors qu'il se produit encore ?, J'ai environ 2 semaines sur le fil et aujourd'hui, je suis tombé sur des paquets mondiaux, et ils ne fonctionnent pas bien avec NVM. De plus, j'ai configuré le préfixe et le préfixe --prefix et cela n'a pas fonctionné, il continue à s'installer dans le préfixe global par défaut ...
Peut-être que je vais essayer de le réparer dans quelques jours de plus ...

Ran dans ce problème, comme tout le monde au-dessus de moi. Je m'attendais à ce que _yarn_ installe les packages au même emplacement que _npm_, lors de l'utilisation de l'indicateur -global .

Y a-t-il des raisons ou des scénarios où ce ne serait pas la meilleure solution ou la solution par défaut?

  • Les gens peuvent en fait définir cela sur autre chose que la valeur par défaut (je le fais).
  • Ce chemin sera probablement déjà dans nos variables d'environnement. (Après avoir résolu cela comme la toute première étape après toute installation _npm_ sur une machine Windows.)
  • Un simple npm root -g ou npm config get prefix révèle l'emplacement des modules installés globalement.

IMO Je pense que nous devrions envisager de changer le comportement par défaut de yarn global pour l'installer au même endroit que le préfixe global _npm's_ .

C'est en effet une idée raisonnable.

Récemment, j'ai eu un problème avec les chemins globaux sous Linux et c'était délicat
pour trouver le chemin que je devais ajouter à PATH.

L'inconvénient est que cela peut être un changement radical pour les personnes qui ont déjà
configurer leurs chemins de fil.
Dans certains cas, le bin npm global par défaut est / usr / local / bin ou quelque chose et il
est implicite de l'utiliser avec sudo qui n'est pas l'approche du fil.

Je me demande si la commande 'yarn global add' pourrait simplement vérifier si le bac installé
l'emplacement est dans PATH et affiche un avertissement si ce n'est pas le cas?
Cela faciliterait-il les choses?

Le vendredi 5 janvier 2018 à 5 h 12, Mark Drake [email protected] a écrit:

Ran dans ce problème, comme tout le monde au-dessus de moi. Mon attente était que
yarn installerait les packages au même endroit que npm ,
lors de l'utilisation de l'indicateur -global.

Y a-t-il des raisons ou des scénarios où ce ne serait pas le meilleur ou
solution par défaut?

  • Les gens peuvent en fait définir ceci sur autre chose que la valeur par défaut (je
    faire).
  • Ce chemin sera probablement déjà dans nos variables d'environnement.
    (Après avoir résolu cela comme la toute première étape après tout npm
    installer sur une machine Windows.)
  • Un simple préfixe npm root -g ou npm config get révèle l'emplacement
    des modules installés dans le monde.

IMO Je pense que nous devrions envisager de changer le comportement par défaut du filglobal à installer au même emplacement que le préfixe global de npm .

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/yarnpkg/yarn/issues/648#issuecomment-355551314 , ou muet
le fil
https://github.com/notifications/unsubscribe-auth/ACBdWMvBOVNFKloPPFBzpar60Gu0Qpbrks5tHh-egaJpZM4KT3-H
.

Je me demande si la commande 'yarn global add' pourrait simplement vérifier si l'emplacement du bac installé est dans PATH et imprimer un avertissement si ce n'est pas le cas?

J'adore cette idée. Quelque chose de différent serait un changement radical que nous avons fait dans la version 1.0 et je ne pense pas que changer cela à nouveau soit une bonne idée à moins qu'il n'y ait d'autres raisons. Il y a eu une très longue discussion à ce sujet sur https://github.com/yarnpkg/yarn/pull/3721 et des références aux problèmes et aux PR.

Un simple préfixe npm root -g ou npm config get révèle l'emplacement des modules installés globalement.

Yarn a yarn global dir comme équivalent.

Si vous constatez que les binaires dans dactylographié ne sont pas installés et que @angular/cli installé, supprimez-le et essayez à nouveau d'installer typescript. Cela a fonctionné pour moi.

Bizarre? Absolument!

@Fahrradflucht , absolument vrai C'est bizarre pourquoi la documentation ne suggère pas d'ajouter le chemin du

En utilisant ubuntu 17.10, ce qui suit a résolu le problème pour moi:

$ echo export PATH = \ $ PATH: $ (bin global de fil) >> ~ / .profile
$ source ~ / .profile

@DavidNorena La documentation le mentionne en fait, mais comme il s'agit d'une étape de configuration, elle se trouve dans la page d'installation. Même dans ce cas, ce n'est toujours pas très clair, comme dans l' onglet Linux de la page d'installation https://yarnpkg.com/en/docs/install, la section Path Setup se trouve après les instructions pour chaque distribution Linux.J'imagine que la plupart des gens utilisent Ubuntu (qui est le premier dans la liste) et ne faites donc jamais défiler la page vers le bas et ne voyez jamais l'étape de configuration supplémentaire.

Mais ce n'est toujours pas clair, je ne savais pas qu'il y avait une section PATH SETUP , j'ai juste suivi les étapes pour ma version de Linux Box, mais il n'y avait aucune indication pour aller à la fin de la page ou non.

Merci @jthegedus et la prochaine fois que je regarderai toutes les sections de la documentation, personne ne le sait. :RÉ

Après avoir traité à plusieurs reprises ce problème, j'ai finalement trouvé une solution pour mon scénario que je pensais partager au cas où cela aiderait quelqu'un.

Pour référence, je suis sur MacOS (_Sierra_), en utilisant zsh (et _oh-my-zsh_ installé avec _Homebrew_), NVM (_0.33.8_ installé via _Homebrew_ _-- sans-node_)

Le bac global /users/MyUserName/usr/local/bin et zsh ne reconnaîtrait pas les packages Yarn installés globalement car ce n'était pas dans mon PATH . Bien que j'aurais pu ajouter le chemin de mes utilisateurs, j'ai décidé de définir à la place mon bac global Yarn pour utiliser le /usr/local/bin , qui était déjà dans PATH qui fonctionnait et ne se cassera pas lors du changement de version de Node avec NVM .

J'ai un problème similaire spécifiquement avec une installation globale de typescript .

L'exécution de yarn global bin sorties /usr/local/bin et tous les autres packages globaux ont leurs binaires ajoutés (liés par un lien symbolique) à /usr/local/bin comme prévu.

Quand j'exécute yarn global add typescript , le résultat est:

[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed "[email protected]" with binaries:
      - tsc
      - tsserver
✨  Done in 4.89s.

Essayer d'exécuter des commandes tsc ou tsserver aboutit à command not found: tsc .
Regarder sous /usr/local/bin ne montre ni tsc ni tsserver binaires.

  • Cela fonctionne bien lorsque vous utilisez npm (testé v5.6.0 )
  • J'utilise yarn v1.5.1 , macOS 10.13.3

@Nexxado J'ai suivi vos étapes comme vous l'avez décrit et j'ai reçu les mêmes messages de Yarn. Cependant, les packages ont été installés comme prévu et apparaissent dans /usr/local/bin . Taper tsc -v génère Version 2.8.1 .
J'utilise nvm et node version 9.6.1 avec npm 5.6.0 .

Aviez-vous déjà essayé de l'installer et si oui, avez-vous pu vérifier qu'il a été supprimé? J'ai eu des problèmes avec certains paquets que j'avais installés avec des versions antérieures de npm ou homebrew qui interféraient avec les installations globales via Yarn.

@SiriusBits

Aviez-vous déjà essayé de l'installer et si oui, avez-vous pu vérifier qu'il a été supprimé? J'ai eu des problèmes avec certains paquets que j'avais installés avec des versions antérieures de npm ou homebrew qui interféraient avec les installations globales via Yarn.

C'est possible, je ne me souviens pas si je l'ai fait.
J'utilise nvm avec node v8.9.3 et npm 5.6.0 .

Avez-vous été en mesure de réparer ces «certains paquets» dont vous parliez?

Merci d'avance :)

@Nexxado je l'ai fait. J'avais Gulp CLI qui était installé avec npm et je ne pouvais pas faire fonctionner l'installation globale avec Yarn. Une fois que je l'ai retiré et réinstallé avec Yarn, cela a fonctionné.

J'ai installé le nœud avec asdf-nodejs , et j'ai le même problème avec yarn 1.6.0 dans macOS

l'ajout de cette ligne dans le fichier .zshrc a résolu le problème.

export PATH=/Users/rods/.asdf/installs/nodejs/8.9.4/.npm/bin:$PATH

Pourquoi ce problème est-il clos? Je suis confronté au même problème sous Linux

@jthegedus @DavidNorena Seriez -vous intéressé à améliorer la documentation afin que d'autres puissent en profiter?

@BYK Je

Face au même problème sur Windows 10.

yarn global dir et yarn global bin sont tous les deux dans% PATH% mais aucun binaire n'est installé.

supprimer et rajouter un package n'a pas aidé.

Fil 1.7.0
Node.js 10.3.0

Pareil ici.

Toujours cassé en 1.10.1:

$ yarn global add typescript
yarn global v1.10.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 0.47s.

$ yarn global bin
C:\Users\mikem\AppData\Local\Yarn\bin

$ yarn global list
yarn global v1.10.1
Done in 0.14s.

je vois ppl ajouter le chemin vers .bashrc

export PATH="$(yarn global bin):$PATH"

export PATH = "$ (bin global de fil): $ PATH"

NB, agréable, 666

Même problème. Servir installé avec yarn global add serve . Après l'échec du service de départ: "service: commande non trouvée". La mise à jour manuelle de PATH ne m'a pas aidé. J'ai installé servir avec npm et maintenant cela fonctionne. Vraiment étrange que ce problème date de plus de 2 ans et ne soit toujours pas résolu.

--Modifier - Résolu. vue # 648
Toujours confronté à ce problème. Yarn installé sur Fedora, j'utilise nvm pour gérer les versions des nœuds. installé pug-cli dans le fil dans le monde entier. L'exécution de pug a renvoyé la commande introuvable. Une fois installé pug-cli à l'aide de npm, la commande s'exécute.

Le # 648 (commentaire) n'aide-t-il pas?

Ma faute. Cela résout le problème.

Je rencontre le problème avec NVM dans un conteneur Docker tirant une image CentOS. Ce n'est pas un problème avec le PATH qui est incorrect. J'ai parcouru toute l'image. Mes installations globales ne sont absolument pas installées nulle part. Il semble échouer à l'étape 1/4, la résolution des paquets.

export PATH="$(yarn global bin):$PATH"

Fonctionne pour moi sur Ubuntu.

sudo yarn global add ignite-cli
A travaillé pour moi

Je ne peux pas écrire dans /usr/local/bin raison des autorisations sudo manquantes:

$ yarn global add create-react-app
yarn global v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - create-react-app
error Cannot create "/usr/local/bin/create-react-app" due to insufficient permissions.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.

/usr/local/bin est dans PATH , ~/.config/yarn/global/node_modules/.bin/ est dans PATH mais ni yarn global ni yarn create sont utilisables.

Veuillez essayer de mettre à jour le fil 1.22.4 @hoefling. Cela peut également être un problème avec votre configuration. Comment avez-vous installé le fil?

@DanielRuf merci pour votre réponse! J'ai installé 1.22.4 par l'administrateur système:

$ dnf info yarn
Yarn Repository                                                                                                                                                                    346 kB/s | 363 kB     00:01    
Installed Packages
Name         : yarn
Version      : 1.22.4
Release      : 1
Architecture : noarch
Size         : 5.1 M
Source       : yarn-1.22.4-1.src.rpm
Repository   : <strong i="8">@System</strong>
From repo    : yarn
Summary      : Fast, reliable, and secure dependency management.
URL          : https://yarnpkg.com/
License      : BSD
Description  : Fast, reliable, and secure dependency management.
...

On dirait que le package provient du propre dépôt de yarn .

yarn global v1.21.1

Dans votre dernière réponse, c'était le 1.21.1.
Cela se produit-il encore? Je suggère d'ouvrir un nouveau numéro et de vérifier les autres problèmes pour trouver des solutions.

@DanielRuf vous avez raison, j'ai essayé de configurer une copie locale de yarn et de la rétrograder pour voir s'il s'agit d'une régression. Malheureusement, l'erreur est également reproductible avec 1.22.4 . Ouvre un nouveau problème si je ne trouve pas de solution moi-même.

Cette page vous a été utile?
0 / 5 - 0 notes