2013-04-03 10 views
5

So bin ich in das Lernen von node.js. Ich habe this tutorial verfolgt, um es zu installieren und einige Sachen auszuprobieren.zshrc "Befehl nicht gefunden: npm"

Auf jeden Fall benimmt sich npm wirklich seltsam. Es wird eine Zeit lang gut funktionieren (ich seine Betrachter Konfigurationseinstellungen geändert, zum Beispiel), aber dann plötzlich ‚verschwinden‘, so dass ich das nächste Mal

npm ...(anything) 

in der Befehlszeile, meine Shell informiert eingeben mir, dass der npm-Befehl nicht gefunden wurde. Zuvor hat die Deinstallation und Neuinstallation von npm mit nvm funktioniert, aber ich würde es lieber nicht alle zehn Minuten machen, und es ist super komisch für mich, dass es plötzlich nicht mehr funktioniert.

Ich denke, das letzte Mal, es funktioniert nicht mehr, nachdem ich bearbeitet und dann meine ~/.zshrc Datei neu - Quelle nur npm und Node Tab-Completion-Plugins hinzugefügt.

Irgendeine Idee was ist los? Ich werde die Ergebnisse einiger Basisbefehle posten, aber ich bin wirklich schlecht mit Sysadmin-Kram, und ich weiß wirklich nicht, worauf ich hier achten soll.

NVM -ls

v0.8.22 
current: v0.10.2 
default -> 0.8 (-> v0.8.22) 

welcher Knoten

/usr/bin/node 

die NPM

npm not found 

Es gibt beiden NVM (dies ist ein Duplikat?) Und npm Verzeichnisse direkt in meiner Wurzel Mappe.

Wenn ich in/usr/bin gehe, ist Knoten eine Datei, kein Verzeichnis. Es gibt auch eine Datei npm, aber keine Datei nvm.

Wie all die oben genannten wahrscheinlich zeigt, habe ich wirklich keine Ahnung, was los ist. Ich habe danach gesucht, aber niemand scheint dieses Problem zu haben. Irgendwelche Ideen was los ist oder wie man es herausfinden kann?

BEARBEITEN Da mein Standardknoten nicht auf dem neuesten Stand ist, habe ich all dies gemacht. beiseite stellt, warum meine Shell mich automatisch in das Verzeichnis ist eingeschaltet (und warum das scheint ein GitHub Repo zu sein - keine Ahnung, was mit meinem Computer ist), nicht bietet diese Anhaltspunkte ?:

➜ node nvm alias default v0.10.2 
default -> v0.10.2 
➜ node nvm ls 
    v0.8.22 
current: v0.10.2 
default -> v0.10.2 
➜ node npm 
zsh: command not found: npm 
➜ node nvm install npm 
######################################################################## 100.0% 
Checksums do not match. 
Binary download failed, trying source. 
Additional options while compiling: 
nvm: install N/A failed! 
➜ bin git:(master) nvm uninstall npm 
N/A version is not installed yet... installing 
######################################################################## 100.0% 
Checksums do not match. 
Binary download failed, trying source. 
Additional options while compiling: 
nvm: install N/A failed! 
➜ bin git:(master) cd ~/rails/node 

EDIT 2 - ich sicher, dass der Knoten Pfad zu meiner zshrc Datei hinzugefügt wurde:

#other stuff... 
export PATH=(...):/usr/bin/node 

Aber als ich versuchte dann

source ~./zshrc 

ich habe diese beschweren zu laufen t:

.zshrc:11: command not found: npm 

, die zu diesen Linien Punkte (Zahlen addieren):

10 . ~/nvm/nvm.sh 
11 . <(npm completion) 

, die ich aus nach dem oben tut bekam und, zurück, wenn npm arbeitet, Nachschlagen, wie Tabulatorvervollständigung zu implementieren.

Als Reaktion auf Jens

Dies ist in meiner ~/NVM/nvm.sh Datei, in der Nähe von Anfang an:

# Auto detect the NVM_DIR 
if [ ! -d "$NVM_DIR" ]; then 
    export NVM_DIR=$(cd $(dirname ${BASH_SOURCE[0]:-$0}) && pwd) 
fi 

# Make zsh glob matching behave same as bash 
# This fixes the "zsh: no matches found" errors 
if [ ! -z "$(which unsetopt 2>/dev/null)" ]; then 
    unsetopt nomatch 2>/dev/null 
fi 

Ich versuchte (und ich denke erfolgreich tat) chmod die npm-Verzeichnis, um es lesend/schreibend/ausführbar zu machen.

+1

Hat Ihr 'PATH' Punkt, wo' node' installiert ist? – alex

+0

@alex - versucht, das zu tun, aber ich bin mir nicht 100% sicher, wo das ist. Ich habe/npm dem Pfad hinzugefügt, weil der npm-Ordner im root liegt. Und node.js funktioniert ansonsten gut, also denke ich, dass der Pfad korrekt hinzugefügt wird. Wie finde ich heraus, welche Verzeichnisse ich meinem Pfad hinzufügen soll? Und Jessemon - wie hast du das repariert? – Sasha

+0

Ja, tut es jetzt zumindest. Aber jetzt, da ich das hinzugefügt habe, murrt nur der Versuch, die zshrc-Datei zu laden, nun ".zshrc: 11: command not found: npm" und zeigt auf die Zeile, in der ich vor einiger Zeit den nvm-Pfad hinzugefügt habe (". ~/Nvm/nvm .sh ") – Sasha

Antwort

4

Ich hatte das Problem, wo weder Node noch Npm funktioniert. Ich habe ungefähr 6 Stunden damit verbracht, online nach einer Lösung zu suchen, aber kein Glück.

Als npm website Erwähnung:

npm mit node kommt jetzt.

dachte ich Node.js wieder, mit einer Hoffnung installieren es diese Probleme beheben, und es tat :)

Nach der Installation vollständig erfolgreich war. Node Installer zeigt diese letzte Nachricht:

Knoten bei

installiert wurde

/usr/local/bin/node

npm bei

installiert wurde

/usr/local/bin/npm

Stellen Sie sicher, dass /usr/local/bin is in your $PATH.

Und das ist, wo ich bemerke, dass meine $PATH und Installationsverzeichnisse falsch waren. Nach der Installation kann ich Knoten und Npm ausführen.

Hoffe, es hilft ...

-2

1) Datei Ihre zsh Config Öffnen

nano ~/.zshrc 

2) hinzufügen Weg

export PATH="$PATH:/usr/local/share/npm/bin" 

3) Speichern Sie die Datei durch Drücken von STRG + X und dann Y

4) Führt den Inhalt der Datei

aus
source ~/.zshrc 

Dieses einfache Verfahren für mich gearbeitet :-)

-1

Ehrlich gesagt, nicht sicher, ob dies wird/würde lösen das Problem, das Sie/hatten, aber ich erlebte genau ziemlich viel, was Sie detaillierte - wo npm war Arbeiten, aber dann nach dem Zufallsprinzip hörte einfach auf zu arbeiten - und ich versuchte eine Tonne der gleichen Dinge, die Leute hier vorgeschlagen, ohne Glück.

Was für mich tun, den Trick gelandet, so einfach/stumm wie das klingt/ist, war:

source ~/.bash_profile 

Ich wünschte, ich eine so besser Erklärung hatte, warum das war die magische Kugel, sondern an Wenigstens funktioniert es!

Prost!

+0

Dies funktioniert für 1 Registerkarte für mich. – MattGoldwater

-1

ich das gleiche Problem mit meinem Mac hatte, habe ich folgendes:

  1. Deinstallieren Sie die vorhandenen Knoten
  2. Gehen Sie auf die Knoten Webseite und das Paket herunterladen, installieren Sie sie
  3. Zum ~/.zshrc und der Weg wäre in der Regel /usr/local/bin
  4. Haben Sie Spaß mit npm
-1
curl -L https://npmjs.org/install.sh | sh 

Ich versuchte es auf einer frischen CentOS 7 Installation und es funktioniert!

0

Für mich und andere Googler, die hier ankommen, war das Problem, dass beim Aufruf von sudo auf Ubuntu secure_path verwendet wurde, die NPM nicht enthielt.

Sie können entweder secure_Path deaktivieren, was definitiv nicht empfohlen scheint. Anstatt also ich hängten nur den Knoten ist zu secure path, wenn über NVM installiert sah es aus wie das für mich

  • $: sudo su

  • $: visudo

Dann Zugabe /home/YourUsername/.nvm/versions/node/v8.5.0/bin: auf die secure_path Variable.

Weitere Informationen: sudo changes PATH - why?