Nvm-windows: npm schlägt fehl: "Modul 'semver' kann nicht gefunden werden (Knoten v8.4.0)

Erstellt am 15. Sept. 2017  ·  39Kommentare  ·  Quelle: coreybutler/nvm-windows

Wenn dies eine Frage zur Verwendung von NVM4W ist, verwenden Sie stattdessen den

Wenn dies ein Problem mit Antivirus ist, stellen Sie sicher, dass Sie zuerst die vorhandenen Probleme durchsuchen.

Meine Umgebung

  • [] Windows 7 oder niedriger (wird aufgrund von EOL nicht wirklich unterstützt - Details finden Sie im Wiki)
  • [ ] Windows 8
  • [ ] Windows 8.1
  • [X] Windows 10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016

  • [] Meine Windows-Installation ist nicht englisch.

Ich verwende die NVM4W-Version:

  • [] 1.1.6
  • [X] 1.1.5
  • [] 1.1.4
  • [] 1.1.3
  • [] 1.1.2
  • [] 1.1.1
  • [] Älter
  • [ ] Sonstiges (bitte angeben)

Ich habe schon...

  • [X] Lesen Sie die README-Datei, um sich über npm-Fallstricke und Antivirenprobleme zu informieren.
  • [X] hat das Wiki überprüft, um sicherzustellen, dass mein Problem noch nicht behoben wurde.
  • [X] hat bestätigt, dass ich ein Konto mit Administratorrechten verwende.
  • [X] hat die Probleme (offen und geschlossen) durchsucht, um sicherzustellen, dass dies kein Duplikat ist.
  • [X] hat sichergestellt, dass dies keine Frage zur Verwendung von NVM für Windows ist, da Gitter für Fragen und Kommentare verwendet wird.

Mein Problem bezieht sich auf (überprüfen Sie nur die zutreffenden):

  • [] settings.txt
  • [] Proxy-Unterstützung (Haben Sie Version 1.1.0+ ausprobiert?)
  • [] 32- oder 64-Bit-Unterstützung (Haben Sie Version 1.1.3+ ausprobiert?)
  • [] Zeichen entkommen (Haben Sie Version 1.1.6+ ausprobiert?)
  • [X] Eine Standard-Shell-Umgebung (Terminal / Powershell)
  • [] Eine nicht standardmäßige Shell-Umgebung (Cmder, Hyper, Cygwin, git)

Erwartetes Verhalten

Geben Sie die korrekte Versionsnummer zurück.

Tatsächliches Verhalten

module.js: 491
werfen err;
^

Fehler: Modul 'semver' kann nicht gefunden werden
at Function.Module._resolveFilename (module.js: 489: 15)
at Function.Module._load (module.js: 439: 25)
at Module.require (module.js: 517: 17)
bei Bedarf (intern / module.js: 11: 18)
bei Objekt.(C: \ Benutzer \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ Knotenmodule \ npm \ lib \ utils \ unsupported.js: 2: 14)
at Module._compile (module.js: 573: 30)
at Object.Module._extensions..js (module.js: 584: 10)
bei Module.load (module.js: 507: 32)
bei tryModuleLoad (module.js: 470: 12)
bei Function.Module._load (module.js: 462: 3)
module.js: 491
werfen err;
^

Fehler: Modul 'semver' kann nicht gefunden werden
at Function.Module._resolveFilename (module.js: 489: 15)
at Function.Module._load (module.js: 439: 25)
at Module.require (module.js: 517: 17)
bei Bedarf (intern / module.js: 11: 18)
bei Objekt.(C: \ Benutzer \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ Knotenmodule \ npm \ lib \ utils \ unsupported.js: 2: 14)
at Module._compile (module.js: 573: 30)
at Object.Module._extensions..js (module.js: 584: 10)
bei Module.load (module.js: 507: 32)
bei tryModuleLoad (module.js: 470: 12)
bei Function.Module._load (module.js: 462: 3)

Schritte zum Reproduzieren des Problems:

nvm install 8.4.0
nvm benutze 8.4.0
npm -v

help wanted

Hilfreichster Kommentar

Gleiches gilt für den neuesten 8.8.1.
Ich bin mir nicht sicher, wie ich dies durch NVM beheben soll, da SO nur eine saubere Neuinstallation des Knotens vorschlägt. Angesichts der Art der NVM-Installationen ist nicht sicher, wie diese Schritte repliziert werden sollen. Die einzige Möglichkeit, Node v8 zu verwenden, besteht darin, NVM einfach nicht zu verwenden.
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

Problemumgehung

  1. nvm install 8.8.1 (oder eine andere Version, die Sie möchten). Wechseln Sie (noch) nicht dazu.
  2. Laden Sie die * .zip derselben Knotenversion von der offiziellen Website herunter (https://nodejs.org/en/download/current/).
  3. Ersetzen Sie den Inhalt von %APPDATA%/nvm/v8.8.1/npm durch den Ordner npm aus dem heruntergeladenen Archiv
  4. nvm use 8.8.1
  5. Genießen

Alle 39 Kommentare

Dies ist ein npm-Fehler, nicht vollständig ein NVM-Fehler. Ich würde vorschlagen, Node 8.4.0 neu zu installieren. Vielleicht war der npm-Download schlecht oder etwas war beschädigt.

@coreybutler Es funktioniert nicht,

Ich habe sogar die node_modules-Abhängigkeiten des npm von einer anderen funktionierenden normalen Installation von Node 8.5.0 kopiert und hatte immer noch Probleme. Könnten Sie mehr darüber nachdenken und herausfinden, wo das Problem liegt?

Das nvm ist ein wirklich praktisches Tool, das aber nicht mehr funktioniert, und es ist schade :(

Ich bin mir nicht sicher, was ich dir sagen soll ... Ich kann semver mit demselben Setup installieren.

image

@coreybutler hat gerade eine neue Ausgabe mit den Details eröffnet

Meine eigene Umgebung und die Schritte, mit denen ich das Problem hier repliziert habe (geschlossenes Duplikat): # 305

Gleiches gilt für den neuesten 8.8.1.
Ich bin mir nicht sicher, wie ich dies durch NVM beheben soll, da SO nur eine saubere Neuinstallation des Knotens vorschlägt. Angesichts der Art der NVM-Installationen ist nicht sicher, wie diese Schritte repliziert werden sollen. Die einzige Möglichkeit, Node v8 zu verwenden, besteht darin, NVM einfach nicht zu verwenden.
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

Problemumgehung

  1. nvm install 8.8.1 (oder eine andere Version, die Sie möchten). Wechseln Sie (noch) nicht dazu.
  2. Laden Sie die * .zip derselben Knotenversion von der offiziellen Website herunter (https://nodejs.org/en/download/current/).
  3. Ersetzen Sie den Inhalt von %APPDATA%/nvm/v8.8.1/npm durch den Ordner npm aus dem heruntergeladenen Archiv
  4. nvm use 8.8.1
  5. Genießen

danke @ roman-spiridonov ist gerade auf den gleichen Fehler auf Knoten 8.8.1 gestoßen, der über nvm unter Windows installiert wurde, und Ihre Problemumgehung scheint den Job zu erledigen

Scheint auch mit der neuesten Version von Node (9.1.0) funktioniert zu haben.

npm, das von npm installiert wurde, scheint nicht mit dem Knoten selbst kompatibel zu sein. Sie müssen die Zip-Datei herunterladen und das npm-Modul ersetzen, wie von @ roman-spiridonov vorgeschlagen

@coreybutler wird das nicht angesprochen? Ich sehe genau den gleichen Fehler - alles über = <8.0.

Leider kann ich npm i semver nicht ausführen. Ich erhalte den gleichen Fehler.

@ roman-spiridonov Ich finde nicht, dass "npm" ein Ordner ist, sondern eine Datei in der heruntergeladenen .zip. Das Ersetzen durch das heruntergeladene scheint die Semver-Probleme für mich nicht zu lösen (ich weiß, dass andere erfolgreich waren).

Ich habe das gleiche Problem.

Die Problemumgehung von @ roman-spiridonov funktioniert für mich.

node 8.9.1
npm 5.5.1

@hyndsite Sie müssen in das Verzeichnis node_modules schauen - in das Verzeichnis npm . Verwenden Sie das und es sollte funktionieren.

Danke @powellian Ich habe das gestern gefunden und wollte ein neues Update für die @ roman-spiridonov-Nachricht veröffentlichen - dass der richtige Pfad %APPDATA%/nvm/v8.8.1/node_modules/npm

Die "npm" -Datei im Pfad /nvm/vx.xx trug dazu bei, die Angelegenheit zu verwirren.

Danke, es funktioniert, aber jetzt frage ich mich, warum das Paket, das nvm herunterlädt und das, das wir herunterladen, anders ist.

Das gleiche Problem mit 8.9.0 und @ roman-spiridonovs Problemumgehung hat den Tag gerettet.

Wie bei @benavern bin ich neugierig, warum sich das Paket, das nvm installiert, von dem im offiziellen Repo unterscheidet.

Gleiches gilt für den neuesten 8.9.4.
Der Fehler wurde behoben, indem das Verzeichnis 'C: \ Benutzer \ Ihr Name \ AppData \ Roamingnvm \ v *' gelöscht und 'nvm install' erneut ausgeführt wurde.

Problemumgehung:

Wenn dieses Problem auftritt und Sie Windows 10 verwenden, aktivieren Sie lange Pfade mit dem Registrierungseditor oder dem lokalen Gruppenrichtlinieneditor.

Ref: https://github.com/coreybutler/nvm-windows/issues/305#issuecomment -345024594
Ref: https://superuser.com/a/1119948

Aber für mich musste ich immer noch die Problemumgehung von @ roman-spiridonov durchführen. Ich konnte jedoch den npm-Ordner im Explorer nicht kopieren, stattdessen musste ich robocopy verwenden:

robocopy "C:\Users\username\Downloads\node-v8.9.4-win-x64\node_modules\npm" "C:\Users\username\AppData\Roaming\nvm\v8.9.4\node_modules\npm" /mir

alternativ dazu nvm root verschieben. Machen Sie nvm root C:\nvm bevor Sie einen neuen Knoten installieren.
Möglicherweise müssen auch zusätzliche Dateien in das neue Stammverzeichnis kopiert werden.
Wenn bereits installiert, dann:

nvm uninstall 8.x.x
nvm root C:\nvm
copy /Y %APPDATA%\nvm\* C:\nvm
nvm install 8.x.x

Ich habe das gleiche Problem festgestellt (Fehler: Modul 'semver' kann nicht gefunden werden).

Einige Tipps, um Sie zum Laufen zu bringen:

Der Dateivergleich (unter Verwendung einer offiziellen Zip-Datei) ergab, dass tatsächlich> 4.000 Dateien und Ordner unter node_modules\npm fehlen. Es sieht so aus, als ob das Entpacken abgebrochen wird. Auf v8.9.1 und v8.9.4 geprüft: Alle Knotenmodule, die alphabetisch hinter libnpx stehen, fehlen. Wäre nicht überrascht, wenn es sich um diese lächerlich verschachtelte Ordnerstruktur handelt: ...\nvm\v8.9.4\node_modules\npm\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish\

Ich nahm den aktuellen Master von nvm-windows, fügte der Installationsfunktion einige Debug-Informationen innerhalb von nvm.go , kompilierte sie (mit Go 1.10 win x64) und tauschte die nvm.exe gegen die neue aus. Ergebnis:

  • Die npm-Zip-Datei, die in das temporäre Verzeichnis @benavern , @Akamaozu )
  • Die Zip-Datei wurde vollständig im temporären Verzeichnis extrahiert und in den versionierungsspezifischen Ordner verschoben. Keine fehlenden Dateien.

Nun zum überraschenden Teil, als ich versuchte, die Regression zu finden:

  • Tag 1.1.6 ausgecheckt, kompiliert (ohne Änderungen), nvm.exe durch das neue ersetzt, v8.9.4 gelöscht, nvm install 8.9.4 => erfolgreich ausgeführt, keine fehlenden Dateien
  • Ausgechecktes Tag 1.1.5, kompiliert (ohne Änderungen), nvm.exe durch das neue ersetzt, v8.9.4 gelöscht, nvm install 8.9.4 => erfolgreich ausgeführt, keine fehlenden Dateien
  • Ersetzte nvm.exe durch die ursprüngliche aus dem offiziellen nvm-windows-Setup (1.1.5), löschte v8.9.4, führte nvm install 8.9.4 aus => immer noch Fehler , Dateien fehlen.

Es sieht für mich so aus, als ob es ein Problem mit dem Erstellungsprozess und / oder der Umgebung gibt.

Wäre großartig, wenn jemand anderes versuchen könnte, die nvm.exe über build.bat oder go build src/nvm.go erstellen, um das Problem auch für ihn / sie zu lösen.

HTH, Codeshell

Löschen Sie den npm-Ordner aus dem folgenden Ordner
C: \ Benutzername \ AppData \ Roamingnpm
nach => npm installieren
Es funktioniert gut für mich! ....

Ich bin heute auf dieses Problem gestoßen und das hat bei mir funktioniert.
1) Öffnen Sie ein Bash-Terminal
2) CD in C: \ Usersusername \ AppData \ Roamingnpm \ node_modules \
3) sollte eine package.json sehen
4) Garn einbauen

@codeshell Danke für deine Analyse. Ich habe festgestellt, dass das Problem auf die langen Pfade zurückzuführen ist, die unter Windows nicht unterstützt werden. Auch nach dem Herunterladen der npm-Zip-Datei und dem Ersetzen des Inhalts von C: \ Users \ yourname \ AppData \ Roamingnvm \ 9.11.1npm habe ich den Fehler erhalten. Tatsächlich konnte ich aufgrund langer Namen nicht alle Dateien aus der heruntergeladenen npm-Zip-Datei kopieren.

Um dies zu vermeiden, habe ich Node Version 9.11.1 deinstalliert und dann nvm deinstalliert. Neu installierte nvm bei C: nvm. Jetzt funktioniert meine normale 'nvm install 9.11.1' einwandfrei und 'npm' ist ebenfalls in gutem Zustand, was durch Ausführen von 'npm -v' bestätigt wird.

Ich weiß, dass dies eine ziemlich drastische Lösung ist, die aber nur einmal durchgeführt werden muss.

Ich habe diese Schritte befolgt und mein Problem gelöst

  1. deinstallieren Sie Node.js
  2. Entfernen Sie den Inhalt der folgenden Ordner
    C: \ Benutzer \\ AppData \ Roamingnpm-Cache
    C: \ Benutzer \\ AppData \ Roamingnpm
    C: \ Programme \ nodejs
  3. Installieren Sie dann erneut Node _ https://nodejs.org/en/_

Die Installation des Knotens über NVM 1.6.0 hat bei mir funktioniert

In meinem Fall waren die Wege einfach zu lang. Ich habe c: nvm als Versionsmanager für das Installationsverzeichnis und c: \ nodejs für das Symlink-Verzeichnis ausgewählt. Das schien das Problem für mich zu lösen.

Ich hatte das gleiche Problem mit dem Knoten v10.4.0 und der Umgehung von roman-Spiridonov für mich gearbeitet.

Ich hatte bereits %AppData%\npm usw. entfernt, bevor ich nvm-windows installiert hatte.

Ich habe versucht, 10.4.1 zum Laufen zu bringen, hatte aber zuerst Probleme.

Es hat funktioniert, nachdem der Ordner manuell vom Installationsort gelöscht und erneut über nvm installiert wurde. Ich bin mir nicht sicher, ob dies ein zu langer Pfad ist (offensichtlich nicht) C:\Users\muser\AppData\Roaming\nvm\v10.4.1 .

Das gleiche Problem mit v10.5.0 und der Lösung von Roman-Spiridonovs hat auch bei mir funktioniert.

Ich habe das gleiche Problem bei der Installation des neuesten Knotens 10.6.0, dann habe ich ihn einfach deinstalliert und zu Version 8.11.3 gewechselt, Problem behoben.

Ich habe auch versucht, die Datei npm-v6.1.0.zip direkt herunterzuladen. Beim Entpacken treten einige Fehler auf.

Ich habe das gleiche Problem wie

Das Problem besteht weiterhin mit 10.6.0-64bit für eine vollständige Neuinstallation. (kein Knoten / npm vorher). Die Lösung von roman-spiridonovs funktioniert weiterhin (für mich befindet sich der Ordner npm jetzt in [...node]\node_modules\npm ).

Warum ist dies nach fast einem ganzen Jahr immer noch ein Problem?

Dieses Problem ist gerade unter Windows 10 aufgetreten.

Durch Aktivieren der langen Win32-Pfade wurde das Problem behoben. Siehe Beitrag von @apptaro (15.02.2018)

Nachdem ich lange Pfade aktiviert hatte, startete ich Windows neu, damit die Änderung angewendet wurde.
Ich musste auch die kaputte npm Installation manuell löschen.

Danach konnte ich npm erneut mit nvm installieren.

Ich denke, nvm unter Windows sollte Warnungen ausgeben, wenn lange Pfade nicht aktiviert sind. nvm install sollte auch nicht lautlos versagen.

Für mich:

  • nvm install 9.11.2 war die letzte Version, die ich gefunden habe und die über nvm funktioniert hat.
  • Das Überschreiben mit der Zip-Datei von der Website funktioniert bei jeder Version.
  • Die Korrektur für lange Pfade schien nicht zu funktionieren (obwohl ich nicht glaube, dass ich nach dem Ändern der Registrierungseinstellung einen Neustart des Computers versucht habe).

Dies ist das Powershell-Skript, das wir für Neueinsteiger verwenden. Hoffentlich sollten sie nach einem Neustart in der Lage sein, auf eine spätere Version zu aktualisieren.

# Get Chocolatey which is required for the rest of this script
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco feature enable -n=allowGlobalConfirmation
choco upgrade chocolatey

choco upgrade nvm
$env:NVM_HOME = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("NVM_HOME","Machine"))
$env:NVM_SYMLINK = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("NVM_SYMLINK","Machine"))
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))

# Enable long paths in windows - may avoid npm issue https://github.com/coreybutler/nvm-windows/issues/302
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\ControlSet001\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force | Out-Null

nvm install 9.11.2
nvm use 9.11.2

Ich bin mir nicht sicher, was ich dir sagen soll ... Ich kann semver mit demselben Setup installieren.

image

Ich denke, "npm install" würde das Problem lösen, wie es bei mir der Fall war;)

Ich glaube, @momochanmo hatte gerade vergessen, das Semver-Paket in ihrem Projekt zu installieren. Es hat die gleiche Fehlermeldung, aber dies ist ein völlig anderes Problem.

Um es noch einmal zusammenzufassen: In diesem Thread geht es um die Tatsache, dass nvm eine beschädigte Version von npm mit einer fehlenden / beschädigten Version des Semver-Pakets installiert, wodurch es nicht mehr funktionsfähig ist.

Die wahrscheinlichste Ursache, die bisher vorgeschlagen wurde, ist, dass eine vor etwa 3 Jahren in den Go-Compiler eingeführte Fehler- / Verhaltensänderung einen Fehler verursacht, der während der Installation stillschweigend verschluckt wird. Siehe https://github.com/coreybutler/nvm-windows/pull/370.

Wenn Sie also jemanden kennen, der mit Windows-Dingen arbeitet und von Go begeistert ist, ist jetzt ein guter Zeitpunkt, um ihm auf die Schulter zu klopfen und ihm diese hervorragende Gelegenheit zur beruflichen Weiterentwicklung zu bieten 😅

Ich habe diese Schritte befolgt und mein Problem gelöst

  1. deinstallieren Sie Node.js
  2. Entfernen Sie den Inhalt der folgenden Ordner
    C: \ Benutzer\ AppData \ Roamingnpm-Cache
    C: \ Benutzer\ AppData \ Roamingnpm
    C: \ Programme \ nodejs
  3. Installieren Sie dann erneut Node _ https://nodejs.org/en/_

Das Folgende hat bei mir funktioniert. Du bist ein Lebensretter!!!!! Danke <3

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

keylowgee picture keylowgee  ·  6Kommentare

leiamac picture leiamac  ·  4Kommentare

thany picture thany  ·  4Kommentare

SufyanParkar picture SufyanParkar  ·  4Kommentare

AllainPL picture AllainPL  ·  7Kommentare