Befehl nach npm-Installation in zsh nicht gefunden

78

Ich habe einige Probleme bei der Installation von Gelübden über npm in zsh. Folgendes bekomme ich. Ich habe versucht, es mit und ohne die Option -g zu installieren. Hast du eine Idee, was hier los ist?

[❤  ~/Desktop/sauce-node-demo:master] npm install -g vows
npm http GET https://registry.npmjs.org/vows
npm http 304 https://registry.npmjs.org/vows
npm http GET https://registry.npmjs.org/eyes
npm http GET https://registry.npmjs.org/diff
npm http 304 https://registry.npmjs.org/eyes
npm http 304 https://registry.npmjs.org/diff
/usr/local/share/npm/bin/vows -> /usr/local/share/npm/lib/node_modules/vows/bin/vows
[email protected] /usr/local/share/npm/lib/node_modules/vows
├── [email protected]
└── [email protected]
[❤  ~/Desktop/sauce-node-demo:master] vows
zsh: command not found: vows

Vielen Dank

optikfluffel
quelle
Haben Sie versucht, den Pfadcache der Shell per Rehash zu aktualisieren?
Brian Agnew
immer noch nichts danach = /
optikfluffel

Antworten:

76

Wenn Sie Node.js mit Homebrew installiert haben, finden Sie npm-Binärdateien in /usr/local/share/npm/bin. Sie sollten sicherstellen, dass sich dieses Verzeichnis in Ihrer Umgebungsvariablen PATH befindet. Also, in deine ~/.zshrcDatei hinzufügen export PATH=/usr/local/share/npm/bin:$PATH.

Andrew Ferk
quelle
21
Auf dem Mac habe ich export PATH="$HOME/.npm-packages/bin:$PATH"meine hinzugefügt ~/.zshrc.
Dan Sandland
$ HOME / .npm-global / bin hat für mich mit npm v6.9.0 gearbeitet
Kevin Hooke
146

source /home/YOUUSERNAME/.bash_profileam Anfang von hinzufügen~/.zshrc

Und alle fehlenden Befehle werden erkannt.

Für Mac- Benutzer: Hinzufügensource /Users/YOUUSERNAME/.bash_profile

Abdennour TOUMI
quelle
7
Für mich musste ich ~ / .bashrc
Royalist
3
Ich verwende WSL unter Windows 10 und musste "source /home/USERNAME/.profile" hinzufügen, damit es funktioniert, aber es funktionierte wie ein Zauber
Luke
1
Ich musste .bashrc anstelle von bash_profile beziehen. Als ich bash_profile bezogen habe, habe ich eine Menge Befehle erhalten, die in zsh
NoobCoderChick
1
Mein Benutzerordner in Mac OS Catalina enthält dies nicht .bash_profile. Ich kann es auch nicht mit der Suche finden. Nach dem Aktualisieren der .zshrcDatei und dem erneuten Öffnen des Terminals war die erste Zeile no such file or directory: /Users/m...i/.bash_profile. Könnte dies eine bahnbrechende Veränderung von Catalina sein?
MQoder
Dies funktioniert auch für Mac-Benutzer: source /Users/$USER/.bash_profileoder vielleicht sogar noch einfachersource $HOME/.bash_profile
Glenn85
17

Für Mac- Benutzer:

Neben dem folgenden: nvm, iterm2, zsh

Ich fand die Verwendung der .bashrceher als .profileoder .bash_profileverursachte weit weniger Probleme.

Einfach durch Hinzufügen des letzteren zu meiner .zshrcDatei:

source $HOME/.bashrc
Tim.G
quelle
2
Ich musste verwenden, source $HOME/.bash_profileaber dies ist bei weitem die beste Antwort. Ich hatte eigentlich schon sdkman und node normal für bash konfiguriert. Ich habe die Knotenmodule zum Pfad hinzugefügt, aber immer wieder die Berechtigung verweigert erhalten. Dies behebt das Problem! Zurück zur Codierung!
Brooks DuBois
12

Mac-Benutzer setzen nur
voraus, dass Sie nvm zuvor und npm korrekt installiert haben
(Schritt-für-Schritt-Anleitung zur Installation:
Installieren Sie nvm für Mac-Benutzer ).

du musst:

Suchen Sie die '.zshrc'-Datei:

  • Terminal öffnen.
  • Geben Sie ein, open ~um auf Ihr Home-Verzeichnis zuzugreifen.
  • Drücken Sie Cmd + Shift + ., um die versteckten Dateien im Finder anzuzeigen.
  • Suchen Sie die .zshrc .

Bearbeiten Sie die '.zshrc'-Datei:

  • add: source /Users/_user_Name_/.bash_profileam Anfang der Datei (wobei _user_Name_ für Ihren Benutzer steht.

  • Speichern Sie die Datei und schließen Sie das Terminalfenster.

Eden Sharvit
quelle
Auch wenn dies wie ein Hack aussieht, finde ich, dass es eine gute Möglichkeit ist, alle meine vorinstallierten Inhalte nach dem Catalina-Upgrade von Bash auf Zsh zu bringen.
Maxim V. Pavlov
Dies ist für mich die Antwort, da das einfache Ausführen source /Users/_user_Name_/.bash_profilenur für die Dauer der aktuellen Sitzung dauerte.
Nino Škopac
11

Unter Ubuntu , nach der Installation von ZSH und zuvor auf dem bashTerminal installiert Node oder andere Pakete,

Zuerst öffnen:

nano .zshrc

Und kommentieren Sie die zweite Zeile aus:

export PATH=$HOME/bin:/usr/local/bin:$PATH

Dies funktioniert für mich und ohne eine Zeile zu schreiben, und ich denke, diese Option ist auch auf dem Mac verfügbar .

Jesus Romero
quelle
7

Für MacOS- Benutzer: Verwenden Sie .profile anstelle von .bash_profile. Möglicherweise müssen Sie es noch manuell hinzufügen zu ~/.zshrc:

source $HOME/.profile

Beachten Sie, dass es standardmäßig keine solche Datei gibt! Zitieren von slhck https://superuser.com/a/473103 :

Auf jeden Fall können Sie die Datei einfach erstellen, wenn sie nicht vorhanden ist, und sie in einem Texteditor öffnen.

touch ~/.profile
open -e !$

Der Mehrwert besteht darin, dass es sich gut anfühlt, eine einzige Datei zum Einrichten der Umgebung zu verwenden, unabhängig von der verwendeten Shell. Das Laden einer Bash-Konfigurationsdatei in zsh war unangenehm.

Zitieren einer akzeptierten Antwort von Cos https://stackoverflow.com/a/415444/2445063

.profileist einfach der Dateiname des Anmeldeskripts, der ursprünglich von verwendet wurde /bin/sh. bash, das im Allgemeinen abwärtskompatibel ist /bin/sh, liest, .profileob es eines gibt

Nach Filip Ekbergs Recherche / Meinung https://stackoverflow.com/a/415410/2445063

.profileist das Äquivalent .bash_profilefür die Wurzel. Ich denke, der Name wurde geändert, damit andere Shells (csh, sh, tcsh) ihn auch verwenden können. (Sie brauchen keinen als Benutzer)

Zurück zu Slhck, ein Hinweis zur Aufmerksamkeit in Bezug auf Bash :

(…) Sobald Sie eine Datei mit dem Namen erstellt haben ~/.bash_profile, wird Ihre Datei ~/.profilenicht mehr gelesen.

wiherek
quelle
Um meine 10 Cent hier hinzuzufügen, vergessen Sie nicht, dies zu tun UND schließen Sie das Terminal vollständig. Dann wieder öffnen und es sollte funktionieren. Keine der Lösungen hat bei mir funktioniert, bevor ich alles beendet und wieder geöffnet habe. Perfekt!
filipe.costa01
1
Die beste Antwort für mich als Ubuntu-Benutzer. Ich musste nur die .profileDatei in meine.zshrc Datei einspeisen. Einfach source ~/.profileam Anfang der .zshrcDatei hinzufügen & neu laden & du solltest in Ordnung sein.
Kayote
7

Wenn Sie mit nvm hinzugefügt haben, fügen Sie Ihrer .zshrc-Datei Folgendes hinzu und starten Sie das Terminal neu, da die Binärdateien der Datei von der zsh-Shell nicht erkannt werden. Wir geben den Pfad an

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Aman Shukla
quelle
6

Eine andere Sache zu versuchen und die Antwort für mich war, das erste exportin zu kommentieren~/.zshrc

# If you come from bash you might have to change your $PATH. export PATH=$HOME/bin:/usr/local/bin:$PATH

Mikeumus
quelle
6

Meiner bescheidenen Meinung nach müssen Sie zunächst sicherstellen, dass jede Art von Node-Version installiert ist. Für diesen Typ:

nvm ls

Und wenn Sie keine Versionen bekommen, bedeutet das, dass ich Recht hatte :) Dann müssen Sie Folgendes eingeben:

nvm install <node_version**>

** Die aktuelle Version finden Sie auf der Node-Website

Dann haben Sie Node und können npm-Befehle verwenden

daxtersky
quelle
Danke @daxtersky. Genau das brauchte ich.
Washington Soares Braga
Das hat es auch für mich getan. Die Knotenversion war anders als nvm lsnach dem Ausführen des Befehls.
Nelles
5

Für alle, die noch Probleme haben. Vergessen Sie nicht, sich abzumelden und erneut anzumelden.

Odgiiv
quelle
Dies war die Lösung unter Mac OS Catalina.
David Schumann
könntest Du das erläutern? Wo melde ich mich an und ab? Meine Güte, mein Facebook-Account? Mein Instagram-Konto? Mein Twitter-Account?
Noogui
Ihr Computer ofc
Odgiiv
1

In meinem Fall habe ich Node mit NVM installiert und nach der Installation von z Shell haben Node und NVM-Befehl nicht funktioniert. Was für mich also funktionierte, war, nvm mit diesem Befehl erneut zu installieren:

wget https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
sudo zsh install.sh

Über den Befehlen wurde nvm erneut installiert, da der Knoten bereits installiert war, wurde der Knotenpfad automatisch in die .zshrc-Datei eingefügt, und alles funktionierte.

Farhan
quelle
1

Ich habe das gelöst durch brew upgrade node

Aliaksei
quelle
0

Ich denke, das Problem liegt eher in der Fertigstellung des ZSH.

Sie müssen diese Zeile in Ihre .zshrc einfügen:

zstyle ':completion:*' rehash true

Wenn Sie Oh-my-zsh haben, wurde eine PR erstellt, die Sie integrieren können, bis sie abgerufen wird: https://github.com/robbyrussell/oh-my-zsh/issues/3440

Knarren
quelle
0

Für mich hat die akzeptierte Antwort zum Hinzufügen export PATH=/usr/local/share/npm/bin:$PATHzu .zshrcnicht funktioniert. Ich habe versucht, auch das hinzuzufügen, NVM_DIRwas mein Problem gelöst hat.

  1. Versuchen vi .bashrc
  2. Sie finden eine Zeile wie die folgende. Kopiere es.

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

  3. Fügen Sie den kopierten Inhalt in die .zshrcDatei ein

  4. Starten Sie das Terminal neu

Ich hoffe, das löst Ihr Problem.

Augustin Jose
quelle
0

FÜR MAC: Ich habe einige der oben genannten Versuche unternommen, aber ohne Erfolg konnte ich nichts zum Laufen bringen.

Ich hatte BREW INSTALLED, also obwohl dies nicht der beste Ansatz ist, habe ich mit zsh:

  1. sudo chown -R $ (whoami) / usr / local / share / man / man8 (für den Zugang zum Gebräu)
  2. Brew Update && Brew Install Npm (ich hatte Node installiert)
  3. npm -v (zur Bestätigung der Installation)
  4. nano ~ / .zshrc (um Dateiänderungen zu leeren und zu speichern)

Das hat bei mir funktioniert. Hoffe das hilft jemandem. # 1 stört mich, aber ich werde vorerst damit leben.

user1889992
quelle