Garn globaler Befehl funktioniert nicht

95

Ich arbeite mit Yarn v0.16.1. Wenn ich richtig verstehe (laut Dokumentation ), yarn global add <package>sollte das gleichbedeutend sein mit npm install -g <package>. Wenn ich das Beispiel in den Dokumenten (mit create-react-app) ausführe , wird der Befehl erfolgreich ausgeführt, create-react-appist dann aber nicht über die Befehlszeile verfügbar. Hier ist die Ausgabe:

$ yarn global add create-react-app
$ yarn global v0.16.1
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed create-react-app@0.6.0 with binaries:
  - create-react-app
  Done in 3.22s.
$ create-react-app --help
-bash: create-react-app: command not found

Eine globale Installation mit npm hat das erwartete Ergebnis und alles funktioniert. Was fehlt mir mit Garn?

jaredsk
quelle

Antworten:

149

Sie sollten export PATH="$PATH:$(yarn global bin)"zu Ihrem ~/.bash_profileoder was auch immer Sie verwenden hinzufügen . Es würde das Problem lösen.

Je nachdem, wie Sie es installiert haben, variiert der globale Ordner von Yarn aus irgendeinem Grund. Sie können dieses Problem hier verfolgen.

Kvartz
quelle
5
Sie sollten die Datei ".bash_profile" auch nach der Bearbeitung als Quelle verwenden, um die Änderungen an Ihrer Bash-Shell zu aktualisieren : source ~/.bash_profile.
Montag
1
Auf einigen Systemen müssen Sie möglicherweise yarn global binselbst ausführen und die wörtliche URL ~/.bash_profileanstelle der Subshell verwenden, etwa:export PATH="$PATH:/usr/local/bin"
Nathan Arthur
Ich musste den Ratschlägen dieses Kommentars in der Frage folgen, auf die in der Antwort hingewiesen wurde. I got global bins working by altering my path from what the docs say in the alternative installation section from export PATH="$PATH:$HOME/.yarn/bin" to export PATH="$PATH:$HOME/.yarn/bin:$HOME/.yarn-config/global/node_modules/.bin" github.com/yarnpkg/yarn/issues/1321#issuecomment-255532028
cirovladimir
1
Für Ubuntu-Benutzer, die auf dieses Problem stoßen, fügen Sie export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"Ihrem ~ / .bash_profile
Pitt
1
für zsh, setzen Sie einfach .zshrc
Shad
41

Update Dezember 2018

Nur den Pfad zu aktualisieren hat bei mir nicht funktioniert. Ich musste auch das Garnpräfix einstellen.

  • Ubuntu 18.04.1 LTS (bionisch)
  • Garn 1.12.3
  • npm v3.5.2
  • Knoten v8.10.0
  • zsh 5.4.2

Schritte

  1. Bestätigen Sie Ihren globalen Bin-Pfad

    yarn global bin

Ich habe: /home/username/.yarn/bin

  1. Garnpräfix einstellen:

    Stellen Sie sicher, dass Ihr Garnpräfix das übergeordnete Verzeichnis Ihres bin-Verzeichnisses ist. Sie können dies durch Ausführen bestätigen

    yarn config get prefix

    Als ich das ausführte, war mein Präfix leer, also habe ich es gesetzt:

    yarn config set prefix ~/.yarn
  2. Fügen Sie Folgendes zu ~ / .bash_profile oder ~ / .bashrc hinzu

    export PATH="$PATH:`yarn global bin`"

    Fügen Sie für zsh-Benutzer diese Zeile unbedingt zu ~ / .zshrc hinzu

  3. Starten Sie Ihre Shell neu oder starten Sie eine neue

    bash -l oder zsh

AndrewD
quelle
Danke, funktioniert perfekt! Getestet auf Ubuntu 18.04 auf WSL
robe007
2

In meinem Fall hat yarn global binnicht funktioniert.

Versuchen Sie es, brew reinstall yarnwenn Sie es so installiert habenyarn

👍🏻

Antoine
quelle
1

Um neu zu installieren, führen Sie unten aus.

brew install -g yarn

// Hinweis: (Aktualisierung von Homebrew) für Mac-Benutzer.

brew reinstall yarn

// (wenn Garn immer noch nicht gefunden wird)

heyfranksmile
quelle
1

Ist auf dieses Problem gestoßen, aber auf einem Windows-System. Alles, was ich tun musste, war, den globalen Garnbehälter zur PATH-Variablen hinzuzufügen.

setx path "%path%;c:\users\YOURUSERNAME\appdata\local\yarn\bin"

Denken Sie daran, Ihren Benutzernamen in den Benutzernamen Ihres Kontos zu ändern.

Sie können überprüfen, wo sich Ihr globaler Behälter befindet, indem Sie ausführen

yarn global bin

Und bitte vergessen Sie nicht, das CMD-Fenster, an dem Sie arbeiten, neu zu starten. Viel Spaß beim Codieren!

Thapedict
quelle
Das Problem unter Windows 10 wurde behoben, nachdem "yarn global add vuepress" ausgeführt und "read me" erstellt wurde. Der Befehl "vuepress dev" konnte zuvor nicht gefunden werden.
Boz
0

Beim Wechsel von bash zu zsh habe ich den gleichen Fehler erhalten, der bei mir funktioniert hat:

in your .zshrc 

# NVM Stuff
export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"

# YVM Stuff
export YVM_DIR="$HOME/.yvm"
. "$(brew --prefix yvm)/yvm.sh"

Nach meinem Verständnis ist mein Fehler auf den fehlenden Zugriff auf Versionsmanager zurückzuführen

ex btrg
quelle
0

Unter Ubuntu habe ich das Problem behoben, indem ich das Paket wie folgt installiert habe:

sudo yarn global add <package> --prefix /usr/local
Florian
quelle