wake-up-neo.net

Wie kann man "yo: command not found" nach der Installation von Yeoman beheben?

Nach diesen Anweisungen habe ich versucht, yeoman zweimal mit npm zu installieren: http://yeoman.io/learning/index.html

Nach dem ersten Fehler habe ich den Knoten mit diesen Anweisungen deinstalliert: Wie deinstalliere ich Node.js vollständig und installiere das Programm neu (Mac OS X) Dann installierte ich nvm und node/npm (über nvm) mit einem Fehler: 

[Yeoman Doctor] Uh oh, I found potential errors on your machine
---------------

[Error] NPM root value is not in your NODE_PATH
  [info]
    NODE_PATH = /Users/joanna/.nvm/v0.10.22/lib/node_modules:.
    NPM root  = /Users/joanna/.node/lib/node_modules

  [Fix] Append the NPM root value to your NODE_PATH variable
    Add this line to your .bashrc
      export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules
    Or run this command
      echo "export NODE_PATH=$NODE_PATH:/Users/joanna/.node/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

Ich habe diesen Befehl eingefügt und dann noch einmal npm install -g yo ausgeführt. 

Nachdem Sie die Anweisungen der yeoman-Site erneut befolgt haben, kann yeoman immer noch nicht gefunden werden. Ich erhalte folgende Fehlermeldung: - bash: yo: Befehl nicht gefunden

Was ist falsch? Der Yeoman-Doktor sagt: "Alles sieht gut aus!"

29
Joanna Marsden

Die Ursache des Problems liegt darin, dass Sie NODE_PATH festgelegt haben, während Sie gleichzeitig NVM verwenden. Wenn Sie NVM verwenden, sollten Sie über keine NODE_PATH-Variable verfügen, da NVM globale Pakete in seinem versionsspezifischen Stammverzeichnis installiert.

Löschen Sie alle Pakete, die sich in Ihrem NODE_PATH befinden, entfernen Sie die Umgebungsvariable und installieren Sie yo und die Generatoren oder alle anderen erforderlichen globalen Pakete. Sie werden sehen, dass es sich nicht mehr beschwert und alles im nvm-Unterverzeichnis endet, das der aktuellen Version entspricht.

Wenn Sie eine andere Node-Version in NVM verwenden, installieren Sie die globalen Pakete erneut. Auf diese Weise wird alles ordentlich nach Version organisiert, wie es sein sollte.

Weitere Informationen zu dieser Diskussion finden Sie hier: https://github.com/creationix/nvm/pull/97

10

Alles, was ich tun musste, war Hinzufügen diese Zeile zu .bash_profile

export PATH="$PATH":~/.node/bin

Sie können ausführen dies automatisch hinzufügen:

printf "\nexport PATH=\"\$PATH\":%s\n" ~/.node/bin >> ~/.bash_profile

Getestet unter OS X 10.9, 10.10, 10.11 und Ubuntu 14.04

23
bfred.it

Kurze Version:

Geben Sie in Ihre Shell die folgenden Befehle ein:

  1. npm config set prefix ~/npm

  2. echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

  3. Dann installieren Sie Yeoman neu:

    npm install -g yo

Dann sollte alles gut funktionieren!

Erklärung:

Hatte eine ähnliche Bedingung, außer dass der Befehl funktioniert hat, aber installierte Generatoren nach der Installation nicht angezeigt wurden. Das Problem wurde dadurch behoben.

Das Problem ist, dass der npm-Pfad auf/usr/local festgelegt ist. Dies ist ein Verzeichnis, das root/Sudo-Berechtigungen erfordert. Da Sie einen Benutzerbefehl verwenden, sollte er nicht als Superuser ausgeführt werden Führen Sie Sudo yo aus, Yeoman wird Ihnen dies explizit mitteilen.

Ich habe auch versucht, chown -R $USER:$USER /usr/local und chmod -R /user/local +rw, aber keiner davon hat geholfen.

Beachten Sie, dass die Knotenmodule (Ihre Generatoren sind auch Knotenmodule), die zuvor in/usr/local installiert wurden, möglicherweise nicht mehr verfügbar sind und eine Neuinstallation erforderlich macht.

18
Oleg Belousov

Bei mir auf Ubuntu funktionierte nur folgendes:.

Ubuntu

Getestet auf Ubuntu 14.04.2

Dies war eine Basisinstallation von Ubuntu 14.04.2 auf VirtualBox unter Verwendung von Ubuntu-Trusty-64.

Ich hatte gerade node und npm frisch installiert und sie funktionierten gut.

npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo

ja, ich musste yeoman installieren, die Pfadprobleme beheben und yeoman erneut installieren.

Die Erklärungen sind oben von Oleg Tikhonov und bfred.it

12
steven iseki

Ich füge hinzu, ich benutze OS X 10.11.1, der von Steve erwähnte Code funktioniert auch für mich.

npm install -y -g yo
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
npm install -y -g yo
4
Jason

Nachdem ich den obigen Vorschlag ausprobiert hatte, fiel mir auf, dass yeoman wie erwartet in /Users/joanna/.node/bin/yo installiert war. Ich setze symbolische Links zu yo, grunt und bower in /usr/local/bin mit

ln -s /Users/joanna/.node/bin/yo /usr/local/bin/yo
ln -s /Users/joanna/.node/bin/grunt /usr/local/bin/grunt
ln -s /Users/joanna/.node/bin/bower /usr/local/bin/bower

Alles funktioniert jetzt, aber ich mache mir Sorgen, dass die Links in der Zukunft Probleme verursachen könnten. Gibt es eine bessere Lösung?

4
Joanna Marsden

Überprüfen Sie, wo Ihr npm installiert ist:

where npm

Wenn Sie den Befehl oben ausführen, wird das Verzeichnis, in dem sich npm befindet, wie folgt aufgelistet:

/usr/local/Cellar/node/5.1.0/libexec/npm/bin/npm

Kopieren Sie den Pfad in den Ordner bin und exportieren Sie ihn wie folgt als PATH-Variable:

export PATH=$PATH:/usr/local/Cellar/node/5.1.0/libexec/npm/bin
0
Arpit

Ich benutzte : 

$HOME/npm/bin

Und es hat ganz gut funktioniert!

In MAC OSX

0
Despertaweb

In meinem Fall musste ich ausführen:

npm config delete prefix

stellen Sie dann eine NVM-Version ein 

nvm use 8

und es funktioniert

0
Badr Bellaj