npm-cli.js wurde beim Ausführen von npm nicht gefunden

89

Normalerweise kann ich eine Bibliothek mit npm installieren, aber heute bei der Installation von yeoman sind diese Fehler aufgetreten. Bitte helfen Sie herauszufinden, was die Grundursache ist.

D:\Works\phonegap\ionic\todo>npm install -g yo
    module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Ich habe in den Ordner geschaut:

C: \ Programme \ nodejs \ node_modules \ npm \ bin \

Der Ordner node_modules wird jedoch nicht als der beschriebene Fehler angezeigt .

Ich versuche auch, npm-cli.js zu finden und zu sehen, dass es tatsächlich in istC:\Program Files\nodejs\node_modules\npm\bin\

user1192476
quelle
Wann haben Sie den Knoten installiert?
Mritunjay
1
Entschuldigung, ich habe vergessen, node neu installiert zu haben, um diesen Fehler zu beheben, sodass jetzt kein Ordner node_modules vorhanden ist. Aber vorher habe ich auch C: \ Programme \ nodejs \ node_modules \ npm \ bin \ node_mod ules \ überprüft, aber keinen npm-Ordner darin gesehen.
user1192476
Ich habe eine Antwort darauf. Wird nach 8 Stunden posten. Vielen Dank.
user1192476

Antworten:

102

Es stellt sich heraus, dass das Problem auf den falschen Pfad des Knotens in der Systemvariablen zurückzuführen ist. Der Pfad zeigt derzeit auf

(Ich weiß wirklich nicht, wann ich es geändert habe)

C:\Program Files\nodejs\node_modules\npm\bin

also wechsle ich zu

C:\Program Files\nodejs

und es funktioniert wie ein Zauber.

user1192476
quelle
16
Hatte das gleiche Problem. Der Pfad wurde nie geändert, daher muss dies vermutlich beim Upgrade von Node geschehen sein.
Nils Magne Lunde
Ich denke, für mich tritt das Problem auf, wenn ich Electron installiert habe :(
Charles Walker
4
wo hast du das geändert welche Datei?
CodeToad
1
Umgebungsvariablen.
Crozeta
In der neuesten Version werden nach dem Upgrade möglicherweise beide Pfade in Ihren Umgebungsvariablen angezeigt, und der alte (C: \ Users \ YOUR_USER \ AppData \ Roaming \ npm) hat Vorrang vor dem neuen (C: \ Programme \ nodejs) ). Das Entfernen des ersteren löst das Problem für mich.
Shahroq
41

Sie müssen dies in der Befehlszeile ausführen.

SET PATH=C:\Program Files\Nodejs;%PATH%
Prathap Kudupu
quelle
Bash Shell in Windows
Prathap Kudupu
Ich hatte dieses Problem, als ich meine Version des Knotens aktualisiert habe. Ihre Lösung hat bei mir perfekt funktioniert. Ich musste keinen node_modulesOrdner löschen
AllJs
Ich bin
Ich musste diesen Pfad weiter nach oben verschieben, um ihm eine höhere Priorität einzuräumen, nachdem ich versucht hatte, npm mit npm (npm -i npm) zu aktualisieren.
Corey Alix
26

Möglicherweise haben Sie dieses Problem auch, wenn Sie C:\Program Files\nodejsund auf Ihrem Weg haben C:\Program Files\nodejs\node_modules\npm\bin. Entfernen Sie letzteres vom Pfad

Peter Sun.
quelle
4
auf dem Weg wo?
CodeToad
17

Kopieren Sie das benannte Verzeichnis npmvon Ihrem installierten Knotenpfad (in meinem Fall war das npm-Verzeichnis in verfügbar C:\Program Files\nodejs\node_modules).

Navigieren Sie zum C:\Users\%USERNAME%\AppData\Roaming\npm\node_moduleskopierten npmVerzeichnis und fügen Sie es dort ein.

Diese Methode hat bei mir funktioniert, als ich den gleichen Fehler hatte. . .

Manoj
quelle
3
Vielen Dank, dies hat großartig funktioniert, nachdem ein Upgrade meine NPM-Installation durcheinander gebracht und repariert und neu installiert hat.
Slbox
16

Ich habe gerade meine NodeJS-Installation repariert und es hat bei mir funktioniert!

Gehen Sie zu Control Panel\All Control Panel Items\Programs and Features-> NodeJSund wählen Sie die Option Reparatur, um sie zu reparieren. Hoffe das hilft.

3AK
quelle
1
Dies funktionierte für mich, aber es heißt "Apps und Funktionen" unter Windows 10.
PeonProgrammer
In meinem Fall gab es in node_modules keinen npm-Ordner, und ich habe nur einen Befehl ausgeführt npm install expressund ihn repariert.
Lalit Fauzdar
Ich danke dir sehr. hat wie ein Zauber funktioniert :) :)
Ameena
14

Dies ist nicht der gleiche Fall wie in der Frage, kann jedoch für jemanden hilfreich sein, der mit einem ähnlichen Problem konfrontiert ist. Wenn Sie unter Windows npmBefehle von einem CI- / Automatisierungstool aufrufen , kann der folgende Fehler auftreten:

Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'

wo SOME_PATHist nicht Program Files/...aber ein Projektverzeichnis stattdessen. Daher versucht npm, npm-cli.js im Projektstammverzeichnis zu finden, anstatt es zu durchsuchen Program Files/nodejs.

Der Grund ist das Skript npm.cmd:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)


SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

Dieses Skript verwendet %~dp0zum Nachschlagen der Datei npm-cli.js, aber einige Automatisierungstools können das Arbeitsverzeichnis so festlegen, dass es %~dp0auf das lokale Projektverzeichnis verweist, sodass das Skript nicht ordnungsgemäß funktioniert.

Eine mögliche Lösung könnte darin bestehen, die npm-Aufrufe daraus zu ändern

npm.cmd install

dazu

cmd.exe /c npm.cmd install
admax
quelle
Wenn Sie das WorkingDirectory festlegen müssen, um den Installationsbefehl in einem bestimmten Verzeichnis
auszuführen
Was für mich funktioniert hat, ist, anschließend ein Änderungsverzeichnis mit dem Befehl npm auszuführen: "cmd.exe" / c cd / d "T: \ TfsAgent_work \ 1 \ s \ src \ WebHost \" && "C: \ Programme \ nodejs \ npm.cmd "installieren
Daniel Fisher Lennybacon
7

Keine der anderen Antworten hat bei mir funktioniert.

Folgendes schreibe ich (in einer Git-Bash-Shell unter Windows):

PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman
edi9999
quelle
5

Auf einem Mac:

Ich habe dies über das Maven com.github.eirslett Frontend Plugin ausgeführt, als ich den gleichen Fehler hatte.

Schließlich musste ich:

Installieren Sie Node.js über das Installationsprogramm hier: http://nodejs.org/

Löschen Sie alle node/und node_modules/Ordner aus meiner Maven-Build-Struktur.

RedYeti
quelle
2
Es sieht so aus, als ob dies mit neueren Versionen des Frontend-Plugins
behoben wurde
5

Bei der Installation mit nvm ist das gleiche Problem mit Knoten 8.5 aufgetreten. Die folgende Lösung hat bei mir funktioniert

$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.

$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.5.0

Omkar@VAST-0137 MINGW64 /d/code

Dies funktionierte für mich, da Knoten 8.5 zuvor mit nvm nicht korrekt installiert wurde. Ich habe es herausgefunden, weil Ordner und Dateien "npm \ bin \ npm-cli.js" zuvor nicht in node_modules erstellt wurden.

Olagu
quelle
Mein Weg sah in Ordnung aus; Deinstallieren / Neuinstallieren hat das Problem für mich behoben.
Mark Maslar
Ich hatte einige seltsame Probleme mit dem alten Knoten, selbst als ich zu einer neueren Version wechselte. Also habe ich den alten Knoten deinstalliert und den neuen erneut installiert. Auf diese Weise habe ich das Problem mit cli behoben :) danke
Andrej Gaspar
5

Ändern Sie keine Umgebungsvariablen

Es war das Installationsprogramm, das das Problem verursachte und nicht alle erforderlichen Dateien installierte.

Ich habe gerade das NODEJS-Setup unter Windows 7 repariert und es funktioniert sehr gut. Möglicherweise können Sie neu installieren, nur für den Fall, dass etwas nicht funktioniert.

TARJU
quelle
4

Zusätzlich zu oben musste ich auch entfernen C:\Users\%USERNAME%\AppData\Roaming\npm. Das hat geholfen.

Romko
quelle
1
Auf meinem System befinden sich dort globale Pakete. Wenn Sie es aus dem Pfad entfernen, können Sie möglicherweise nicht mehr
Schlucken
4

Es gibt tatsächlich zwei Pfade, die der Variablen Ihres Systems beim Upgrade auf die neueste Version von nodejs hinzugefügt wurden.
1. C: \ Programme \ nodejs
2. C: \ Programme \ nodejs \ knotenmodule \ npm \ bin
Für Benutzer von Windows 7/8 / 8.1 gibt es keine Windows 10-Smart-GUI für Umgebungsvariablen.
Alles was Sie tun müssen, ist es zu suchen "C:\Program Files\nodejs\node_modules\npm\bin"und zu entfernen.
Entfernen "C:\Users\%USERNAME%\AppData\Roaming\npm"Sie außerdem Variablen aus Ihren Umgebungsvariablen. Ich poste diese Antwort, weil ich meine 10 Stunden damit verbracht habe, im Internet nach der Lösung zu suchen. Durch die Kombination der obigen Antwort schaffe ich es endlich durch das Problem.

hamzox
quelle
4

Dies begann für mich, nachdem ich GoogleChrome / Puppenspieler installiert hatte. Die Lösung bestand darin, npm neu zu installieren:

$ npm i npm@latest

oder

$ npm install npm@latest
Mythos
quelle
2

Keine der hier aufgeführten Lösungen hat bei mir funktioniert, aber nachdem ich mein System neu gestartet und npm installerneut ausgeführt habe, hat es funktioniert. Ich würde einen oder mehrere Prozesse erraten, die ich zuvor ausgeführt habe.

Ein einfacher PC-Neustart unter Windows 10 hat die Magie für mich getan!

Papigee
quelle
Hat auch für mich gearbeitet! Der Fehler wurde wahrscheinlich nach einem Win10-Update gestartet
Arno van Oordt
2

Ich hatte das gleiche Problem unter Windows. Ich habe gerade Node repariert und es hat nach einem Neustart des Befehls unter Windows einwandfrei funktioniert.

Hallo Universum
quelle
1

Führen Sie einfach diesen Befehl aus:

npm i npm@latest -g
AissaDevLab
quelle
Willkommen bei Stack Overflow! Könnten Sie näher erläutern, was dies bewirkt und wie es die Frage beantwortet?
Anothernode
1

npm install -g npm @ [version] hat das Problem behoben

Repo
quelle
1

Unter Windows 10:

  1. Drücken Sie die Windows-Taste, geben Sie edit die Systemumgebungsvariablen ein und geben Sie ein.
  2. Klicken Sie auf Umgebungsvariablen ...
  3. In der unteren Hälfte des Fensters, das dort mit dem Titel Umgebungsvariablen geöffnet wurde, sehen Sie eine Tabelle mit dem Titel Systemvariablen mit zwei Spalten, die erste mit dem Titel Variable.
  4. Suchen Sie die Zeile mit der Variablen Path und klicken Sie darauf.
  5. Klicken Sie auf Bearbeiten, um ein Fenster mit dem Titel Umgebungsvariable bearbeiten zu öffnen.
  6. Hier, wenn Sie finden

C: \ Programme \ nodejs \ node_modules \ npm \ bin

Wählen Sie es aus und klicken Sie rechts auf die Schaltfläche Bearbeiten. Bearbeiten Sie dann das Feld in dem Pfad, in dem Sie den Ordner nodejs haben. In meinem Fall wurde es nur auf Folgendes gekürzt:

C: \ Programme \ nodejs

Dann schloss ich alle meine cmd- oder Powershell-Terminals, öffnete sie wieder und npm funktionierte.

Julio Peguero
quelle
1

Ich weiß, dass es ein älterer Beitrag ist, aber während ich dies schreibe, ist die Version von Node js 12.13.1. Menschen sind im Allgemeinen damit konfrontiert, weil sie möglicherweise bereits eine frühere Version von Node js installiert haben, die dem Systempfad Folgendes hinzugefügt hat.

C: \ Programme \ nodejs \ node_modules \ npm \ bin

Die neueren Versionen müssen jedoch Folgendes hinzufügen: -

C: \ Programme \ nodejs

Ich möchte den Pfad angeben, in dem Sie die Nodejs installiert haben. Der Standardwert ist

C: \ Programme \ nodejs

Wenn Sie jedoch einen anderen Ort angegeben haben, sollten Sie darauf hinweisen.

Dhana
quelle
0

Lösung für mich in VS2017 (unter Extras | Optionen ...)

Unter Extras |  Optionen ...

Ich habe den Pfad geändert in: C: \ Programme \ nodejs

Michael Maier
quelle
0

Bei der Installation von node9.0.0 unter Windows 7 stieß ich am Ende auf dieses Problem. Die Lösung bestand darin, npm npm.cmd npx npx.cmd aus C: \ Programme \ nodejs \ node_modules \ npm \ bin zu entfernen, bevor eine Problemumgehung durchgeführt wurde Führen Sie C: \ Programme \ nodejs \ npm aus, damit dies eine Möglichkeit ist. Überprüfen Sie, ob Sie das gleiche Problem haben, das ich hatte.

Greif
quelle
0

Erstellen Sie manuell einen npm-Ordner in node_modules und führen Sie das Installationsprogramm mit Reparaturoptionen erneut aus. Es kopiert die fehlenden Dateien.

Saurabh Nainwal
quelle
0

In meinem Fall habe ich nvm-windows 1.1.6 verwendet und meine nodejs-Version mit aktualisiert nvm install latest, was mir schließlich mitteilte, dass nodejs und npm installiert sind. Als ich dies jedoch versuchte, npm installerhielt ich

Fehler: Das Modul 'C: \ Programme \ nodejs \ node_modules \ npm \ bin \ npm-cli.js' wurde nicht gefunden.

Beim Überprüfen der Struktur von nvm-windows stellte ich fest, dass C:\Program Files\nodejseine Verknüpfung mit %APPDATA%\nvm\NODE_VERSION(in meinem Fall NODE_VERSION war v9.7.1), in der der Ordner node_modulesnichts enthält, diesen Fehler verursachte. Die Lösung bestand darin, den npmOrdner aus einem Ordner meiner früheren Versionen zu kopieren node_modulesund einzufügen. Dann aktualisierte ich meine npm mit npm install npm@next -gund alles begann wieder zu funktionieren.

Cemal
quelle
0

Bei mir hat keiner der oben genannten Punkte funktioniert. Ich habe nur bemerkt, dass jedes Mal, wenn ich eine "npm-Installation ..." durchführe, ein npm-Befehl einfach nicht mehr funktioniert. Bei jeder Installation muss ich das NodeJS-Installationsprogramm ausführen und "Reparieren" auswählen. Bis ich eine echte Lösung finde :)

Olivier
quelle
Es ist gut, Lösungen zu posten, und wir wissen das auch zu schätzen. Aber es wäre besser, wenn du es logisch erklärst, anstatt zu sagen, dass es magisch funktioniert hat :)
Aousaf rashid
0

Das Aktualisieren von NPM auf die neueste Version hat bei mir funktioniert:

npm install npm@latest -g
Zylo
quelle
0

Ändern Sie die Umgebungspfadvariable C: \ Programme \ nodejs \ node_modules \ npm \ bin und öffnen Sie das Befehlsterminal und npm -v und

Lokesh Sharma
quelle
0

Für Jungs, die noch um diesen Thread herumkommen:

  • Installieren Sie den Knoten von der offiziellen Site (überprüfen Sie npm und die Knotenversion, um zu überprüfen, ob er ordnungsgemäß installiert ist, ja in einem neuen Terminal / cmd).
  • Installieren Sie nvm jetzt und klicken Sie auf Ja, wenn Sie gefragt werden, ob Sie den aktuellen Knoten mit nvm verwalten möchten.
  • öffne neues cmd und starte nvm auf.
Keshav Sharma
quelle
Sie müssen Node nicht von der offiziellen Website mit nvm installieren: Sie können die neueste Version von Node mit nvm installieren nvm install latest.
Marco Lackovic
0

Ich habe heute genau das gleiche Problem auf einem Linux-Server festgestellt. Und der Grund ist sehr einfach , da ich nicht tun make installnach makeund versucht, direkt die erzeugte nennen npm. So war der Pfad und alles ein Chaos.

Für mich ist die Lösung also nur, make installnachher zu tun makeund das npmUnter zu laufen .node/bin/npm.

Yuan Tao
quelle