Nvm-windows: Die nvm-Installation schlägt mit "Der Dateiname oder die Erweiterung ist zu lang" fehl.

Erstellt am 21. Juli 2017  ·  25Kommentare  ·  Quelle: coreybutler/nvm-windows

Meine Umgebung

Windows 8

Ich verwende die NVM4W-Version:

1.1.5

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

Installieren Sie die Knotenversion 8.2.1

Tatsächliches Verhalten

Schlägt mit Fehler The filename or extension is too long

Schritte zum Reproduzieren des Problems:

λ nvm install 8.2.1
Downloading node.js version 8.2.1 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/21 09:02:31 mkdir C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\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: The filename or extension is too long.

Obwohl dies ein Problem ist, bezweifle ich, dass es einen direkten Weg gibt, es zu beheben. Erstellen Sie dieses Problem jedoch, um mitzuteilen, wie ich es umgangen habe und wie es möglicherweise vermieden werden könnte.

Ich habe die neueste Vorabversion von nvm installiert ( v1.1.6 ), aber diesmal auf C:\nvm\ installiert, um die Pfadlänge zu erhalten. Konnte danach den Knoten v8.2.1 erfolgreich installieren. Halten Sie es für sinnvoll, nvm standardmäßig auf diesem Pfad zu installieren?

upstream-bug

Hilfreichster Kommentar

Wenn Sie die neueste Version (1.1.6) installieren und anstelle von C:/Users/<username>/AppData/Roaming/nvm C:/nvm als Installationsordner auswählen, sollte dies funktionieren. Ich hatte kein Problem bei der Installation von 8.4.0 :)

Für mich hat die Verwendung von nvm root zum Ändern des Pfads von nvm nicht funktioniert. Ich habe seltsame Fehlermeldungen erhalten. Es wurde nicht nvm <commands> kopiert und dann funktionierte sogar node mehr.

Das manuelle Klonen von npm wie @michaelkdh vorgeschlagen hat, hat ebenfalls nicht funktioniert und scheint im Vergleich zu einer sauberen Installation hackisch zu sein

Alle 25 Kommentare

An dieser Installation ist etwas nicht in Ordnung ... Hatten Sie zufällig zwei Versionen von NVM gleichzeitig installiert?

Zu diesem Zeitpunkt ist es vielleicht zu spät, aber was gibt echo %NVM_SYMLINK% aus?

Nein. Zum Zeitpunkt des Fehlers waren noch keine zwei NVM-Versionen installiert.

Zu diesem Zeitpunkt ist es vielleicht zu spät, aber was gibt echo %NVM_SYMLINK% aus?

Eigentlich nicht zu spät. Ich hatte ein Terminal geöffnet, das noch die ältere Umgebung hatte.

λ where nvm
C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\nvm.exe

λ echo %NVM_SYMLINK%
C:\Program Files\nodejs

Außerdem hatte ich zuvor mehrere Versionen von Node über NVM installiert und verwendet:

λ nvm list

  * 8.1.2 (Currently using 64-bit executable)
    8.1.1
    8.1.0
    8.0.0
    6.10.3
    6.10.0
    5.12.0
    4.8.0
    4.2.6

Ich habe das gleiche Problem.
Windows 10
Cmder Shell
NVM 1.1.5

Dies tritt beim Knoten 8.2.0 und 8.2.1
8.1.4 und 8.1.3 funktionieren einwandfrei.

$ nvm install 8.2.0
Downloading node.js version 8.2.0 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/22 00:15:41 mkdir C:\Users\Christopher\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\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: The filename or extension is too long.

Ich frage mich, ob wir das mit npm stromaufwärts aufnehmen sollten.
@clowenhg Wenn Sie nvm direkt auf C:\nvm installieren, wird das Problem behoben, aber Ihre vorhandenen Knoteninstallationen werden nicht mehr erkannt. Ich hatte die Ordner mit mehreren Knoten auf C:\nvm verschoben und konnte sie aufgelistet sehen, hatte aber nie die Möglichkeit, etwas davon zu testen. Dank Windows Update und Boot Loop.

Das würde wahrscheinlich funktionieren, scheint aber nur eine vorübergehende Umgehung zu sein, bis das nächste Ding noch ein Verzeichnis tiefer gehen möchte. Ja, dies als Problem für NPM anzusprechen, wäre wahrscheinlich ein guter Anruf.

Da 8 noch nicht in der endgültigen LTS-Version ist, kehre ich vorerst nur zu 8.1.4 zurück.

Es scheint eine Reihe von Problemen mit den neuen Versionen von npm zu geben, insbesondere solche, die npx-Unterstützung enthalten. Ich habe Unterstützung für npx in der Hauptniederlassung hinzugefügt und werde sie veröffentlichen, wenn 1.1.6 offiziell wird (derzeit getestet). Jedoch; Selbst in diesem Zweig schlägt npx immer noch fehl (es schlägt auch über das eigenständige Windows Node-Installationsprogramm ohne NVM4W fehl).

Ich glaube, dies ist ein npm-Problem, kein NVM4W-Problem. Ich schließe das Problem und markiere es als Upstream-Problem.

@coreybutler Eine kleine Klarstellung, wenn Sie nichts dagegen haben. Warum mussten Sie Änderungen für die npx-Unterstützung vornehmen? Selbst mit dem Knoten v8.1 war npx verfügbar und verwendbar, obwohl es unter Windows fehlerhaft war. Aber nvm sollte dafür nichts tun müssen.

Knoten 8.1 wurde nicht mit npx-Unterstützung ausgeliefert. Wenn Sie es in 8.1 haben, müssen Sie npm install -g npm irgendwo auf der Linie ausgeführt haben, um npm zu aktualisieren. Der Befehl npx wurde in npm v5.3.0 hinzugefügt, und die erste Version von Node, die mit npm 5.3.0 ausgeliefert wurde, war 8.2.1. Einzelheiten finden Sie unter # 288.

Ja .. Sie haben wahrscheinlich recht. Ich erinnere mich, npm aktualisiert zu haben.

Ich hatte das gleiche Problem, die Lösung, die ich habe, ist:

  1. installiere 8.2.1, was dir scheitern wird, das ist in Ordnung.
  2. Installieren Sie v6.11.2 und kopieren Sie 2 Dateien (npm und npm.cmd) aus /c:/[username‹/AppData/Roaming/nvm/v6.11.2 in den Ordner v8.2.1
  3. Führen Sie in Ordner v8.2.1 git clone https://github.com/npm/npm.git

dann solltest du gut sein

Danke @michaelkdh Es funktioniert bei mir. 👍
Etwas anders war, dass beim Klonen von 'npm.git' der Ordner 'npm' erstellt wurde. Und ich musste den Ordner 'npm' in 'node_modules' verschieben.

@ gblue1223 das gleiche, brauche nur npm an Ort und Stelle. Prost,

@coreybutler Entsprechend dem von Ihnen verlinkten Problem können Sie die Pfade überschreiben, auf die installiert werden soll.

Wenn Sie die neueste Version (1.1.6) installieren und anstelle von C:/Users/<username>/AppData/Roaming/nvm C:/nvm als Installationsordner auswählen, sollte dies funktionieren. Ich hatte kein Problem bei der Installation von 8.4.0 :)

Für mich hat die Verwendung von nvm root zum Ändern des Pfads von nvm nicht funktioniert. Ich habe seltsame Fehlermeldungen erhalten. Es wurde nicht nvm <commands> kopiert und dann funktionierte sogar node mehr.

Das manuelle Klonen von npm wie @michaelkdh vorgeschlagen hat, hat ebenfalls nicht funktioniert und scheint im Vergleich zu einer sauberen Installation hackisch zu sein

@ peterbakonyi05 Es ist immer noch schwierig, den nvm-Ordner neu zu definieren, nur um ihn auch zu installieren.

@ Sieabah Ich stimme zu, das ganze Problem ist komisch. Ich denke jedoch, dass es immer noch besser ist als die anderen 2 vorgeschlagenen Lösungen (eigentlich hat keine von ihnen für mich funktioniert)

Könnte jemand für diejenigen, die noch darauf stoßen, Schritte zur Neuerstellung dieses Fehlers bereitstellen? Oder vielleicht ein Screencast? Ich habe dies noch nicht in Aktion gesehen.

Außerdem habe ich festgestellt, dass viele Leute von ihren Terminals kopieren / einfügen ... und die Syntax wie /c/whatever , Lambdas usw. wird immer wieder angezeigt ... all dies zeigt an, dass Leute Dinge wie Cygwin verwenden , Git-Shells, Cmder usw. Bitte beachten Sie, dass diese Shells nicht immer den Windows-Plattformstandards entsprechen und sich auf das Lesen von Pfaden auswirken. Es gibt mehrere andere Probleme, die dies zitieren. Probieren Sie daher vor dem Posten alles in einem Standardterminal aus, um sicherzustellen, dass es sich um ein NVM4W-Problem und nicht um ein Terminal-Shell-Problem handelt.

@coreybutler Los geht's mit cmd.exe

C: \ Users \ Christopher> nvm install 8.4.0
Herunterladen von node.js Version 8.4.0 (64-Bit) ...
Komplett
Erstellen von C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

Herunterladen der npm-Version 5.3.0 ... abgeschlossen
Installieren von npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C: \ Users \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules \ read-pkode load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: Der Dateiname oder die Erweiterung ist zu lang.

C: \ Benutzer \ Christopher> wobei nvm
C: \ Users \ Christopher \ AppDataRoamingnvmnvm.exe

C: \ Users \ Christopher> nvm install 8.4.0
Herunterladen von node.js Version 8.4.0 (64-Bit) ...
Komplett
Erstellen von C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

Herunterladen der npm-Version 5.3.0 ... abgeschlossen
Installieren von npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C: \ Benutzer \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules \ read-pkode load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: Der Dateiname oder die Erweiterung ist zu lang.

C: \ Benutzer \ Christopher> wo Knoten
C: \ Program Filesnodejsnode.exe

C: \ Benutzer \ Christopher> wo npm
C: \ Program Filesnodejsnpm
C: \ Program Filesnodejsnpm.cmd

Ich bin auch auf NVM-Version 1.1.5, wenn das einen Unterschied macht (vielleicht bist du auf 1.1.6?)

Ich kann bestätigen, dass das Upgrade auf 1.1.6 dieses Problem behebt. Sinnvoll, da es so aussieht, als ob ein Teil der Dateipfadverwaltung jetzt native Go-Bibliotheken verwendet.

Das würde auch bedeuten, dass der Dateipfadfehler eher in nvm als in npm selbst lag. Jeder Fehler, der um npm gemeldet wurde, sollte möglicherweise erneut überprüft werden.

Danke @ computerquip-streamlabs. Ich habe dieses Problem und gelöst durch ein Upgrade von nvm mit,

scoop install [email protected]

Und dann könnte ich Node 8.7.0 mit NVM installieren.

Installation von nvm 1.1.6 behebt Fehler mit "npm-Installation: Der Dateiname oder die Erweiterung ist zu lang"

Von: C: \ Users \ [Benutzername] \ AppDataRoamingnvm

  1. Ändern Sie die Datei settings.txt
root: C:\nvm 
path: C:\Program Files\nodejs 
arch: 64 
proxy: none
  1. Kopieren Sie zwei Dateien elevate.cmd und elevate.vbs nach: C: nvm

Dann hat es bei mir geklappt!

Wiedereröffnung, da immer noch mehrere Benutzer darauf stoßen.

FWIW, ich verwende Windows 10, habe lange Dateipfade aktiviert, konnte aber immer noch keine Knotenversionen über 6.x installieren ... aufgrund des Problems mit dem langen Dateipfad in npm v 5.6, das auf nvm 1.1.6 aktualisiert wurde Das Problem wurde für mich behoben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

AllainPL picture AllainPL  ·  7Kommentare

Deilan picture Deilan  ·  4Kommentare

eliavmaman picture eliavmaman  ·  6Kommentare

thany picture thany  ·  4Kommentare

SufyanParkar picture SufyanParkar  ·  4Kommentare