it-swarm.com.de

Abrufen von npm: Befehl nicht gefunden. Wie installiere ich NPM neu, wenn Node bereits installiert ist? Wohin ist NPM gegangen?

Ich beginne mit dem AngularJS-Tutorial das Erstellen moderner Web-Apps und stoße sehr früh auf Probleme.

Ich habe Knoten installiert:

/path/ang-news node -v
v0.10.26

Ich habe früher NPM verwendet, aber es gab Probleme mit Yeoman. Ich habe diese Schritte vor einiger Zeit wiederholt, aber Grunt hat aufgehört zu arbeiten, also habe ich neu angefangen.

Ich rannte:

$ Sudo npm install -g generator-angular

und alle Abhängigkeiten wurden installiert, bis ich erhielt:

npm WARN package.json [email protected] No repository field.
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants [email protected]>=0.8.2

Ich habe dann versucht zu aktualisieren:

$ npm update -g

Ich hätte dies als Administrator ausführen sollen. Ich habe unzählige Fehlermeldungen erhalten, dies schien am relevantesten zu sein:

npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.1.0
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g"
npm ERR! cwd /path/ang-news
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3

npm ERR! not ok code 0

Dann habe ich versucht, Generator-Karma zu deinstallieren und neu zu starten:

$ Sudo npm uninstall -g generator-karma

aber erhalten:

Sudo: npm: command not found

$ npm -v
-bash: /usr/local/bin/npm: No such file or directory

Meine erste Frage lautet: Warum ist NPM plötzlich verschwunden?

[BEARBEITEN: Ein großes Lob an @ try-catch-finally, um auf das Chaos hinzuweisen, das beim Wechsel zwischen normalem Benutzer und Sudo bei der Ausgabe von Befehlen entsteht. Es stellte sich heraus, dass ich meine Benutzerumgebung durcheinander gebracht hatte und NPM nicht mehr installiert war.]

Mein Verständnis ist, dass NPM installiert wird, wenn Sie Node installieren, also meine zweite Frage lautet: Wie installiere ich nur NPM neu? Ich würde es vorziehen, Node nicht von Anfang an neu installieren zu müssen.

[BEARBEITEN: Ein großes Lob an @hawk und @ try-catch-finally - es scheint nicht, dass die Installation von NPM allein eine Option ist, aber es gibt einfache Möglichkeiten, beide neu zu installieren ]

16
Rotimi
  1. Wenn Sie über einen funktionierenden Knoten verfügen, können Sie npm erneut installieren 

curl -L https://npmjs.org/install.sh | Sudo sh

  1. Leider macht npm update -g nicht das, was jemand erwartet. Das Problem ist in der npm-Roadmap behoben, aber es wird eine Weile dauern.

  2. Sie müssen ein Paket fast nie global installieren, es sei denn, Sie möchten dieses Paket (wie generator-angular oder grunt-cli) als Befehl verwenden.

38
Sam Mikes

Für den Fall, dass Sie dies mit Brew gemacht haben, empfehle ich diesen Artikel über Github. Spart Ihnen viel Zeit. 

https://Gist.github.com/DanHerbert/9520689

Npm beheben Unter Mac OS X für Homebrew-BenutzerFühren Sie die folgenden Befehle aus, um alle vorhandenen globalen npm-Module zu entfernen, den Knoten & npm zu deinstallieren, den Knoten mit den richtigen Standardeinstellungen zu installieren, npm als eigenes Paket zu installieren und den Speicherort für zu konfigurieren zu installierende globale npm-Module.

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.node >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

Node und npm sollten zu diesem Zeitpunkt korrekt installiert sein. Der letzte Schritt ist das Hinzufügen von ~/.node/bin zu Ihrem PATH, damit Befehle, die Sie global installieren, verwendet werden können. Ich habe diese Zeile zu meinem ~/.path-Skript hinzugefügt, das über ~/.bash_profile ausgeführt wird. Führen Sie die folgende Zeile so aus, wie sie ist.

export PATH="$HOME/.node/bin:$PATH"
4
alphapilgrim

Das gleiche Problem habe ich nach dem Ausführen des Befehls zur Installation der npm mit der neuesten Version unter redhat 7.1 :

    npm install [email protected] -g

nach einigen Versuchen fand ich die Lösung:

    yum reinstall npm

Ich hoffe, das könnte Redhat/Centos-Benutzern helfen.

0
Zhi Yuan