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
vows@0.6.4 /usr/local/share/npm/lib/node_modules/vows
├── eyes@0.1.8
└── diff@1.0.3
[❤  ~/Desktop/sauce-node-demo:master] vows
zsh: command not found: vows

Vielen Dank


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.


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


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

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.


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 .


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.


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

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


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


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.


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.




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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.