Nvm-windows: nvmのインストールが「ファイル名または拡張子が長すぎます」で失敗する

作成日 2017年07月21日  ·  25コメント  ·  ソース: coreybutler/nvm-windows

私の環境

ウィンドウズ8

NVM4Wバージョンを使用しています:

1.1.5

私の問題は関連しています(該当するものだけをチェックしてください):

  • [] settings.txt
  • []プロキシサポート(バージョン1.1.0以降を試しましたか?)
  • [] 32ビットまたは64ビットのサポート(バージョン1.1.3以降を試しましたか?)
  • []文字のエスケープ(バージョン1.1.6以降を試しましたか?)
  • [x]標準のシェル環境(ターミナル/ PowerShell)
  • []非標準のシェル環境(Cmder、Hyper、Cygwin、git)

予想される行動

ノードバージョン8.2.1をインストールします

実際の動作

エラーThe filename or extension is too long失敗する

問題を再現する手順:

λ 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.

これは問題ですが、それを修正する直接的な方法があるとは思えません。 ただし、この問題を作成して、私がどのように回避したか、そしてどのように回避できるかを共有します。

nvm( v1.1.6 )の最新のプレリリースバージョンをインストールしましたが、今回はパスの長さを節約するためにC:\nvm\にインストールしました。 この後、ノードv8.2.1を正常にインストールできました。 デフォルトでこのパスにnvmをインストールするのは理にかなっていると思いますか?

upstream-bug

最も参考になるコメント

最新(1.1.6)をインストールし、 C:/Users/<username>/AppData/Roaming/nvm代わりにC:/nvmをインストールフォルダーとして選択すると、機能するはずです。 8.4.0インストールに問題はありません

私にとっては、使用してnvm rootのパスに変更するnvm仕事しませんでしたが、私は奇妙なエラーメッセージを得ました。 nvm <commands>コピーされず、 nodeさえ機能しなくなりました。

手動でクローニングnpm @michaelkdhもしなかった仕事を提案し、クリーンインストールに比べハック思えるよう

全てのコメント25件

このインストールについて何か問題があります...万が一、2つのバージョンのNVMを同時にインストールしましたか?

この時点では手遅れかもしれませんが、 echo %NVM_SYMLINK%何を出力しますか?

いいえ。エラーが発生した時点では、2つのバージョンのNVMがインストールされていませんでした。

この時点では手遅れかもしれませんが、 echo %NVM_SYMLINK%何を出力しますか?

実際、手遅れではありません。 まだ古い環境のターミナルを開いていました。

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

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

さらに、以前はNVMを介して複数のバージョンのノードをインストールして使用していました。

λ 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

私は同じ問題を抱えています。
ウィンドウズ10
Cmderシェル
NVM 1.1.5

これはノード8.2.08.2.1発生しています
8.1.48.1.3は正常に機能しています。

$ 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.

これをnpmアップストリームで取り上げるべきかどうか疑問に思います。
@clowenhg nvmC:\nvmに直接インストールすると、問題は解決されますが、既存のノードのインストールは認識されなくなります。 複数のノードフォルダーをC:\nvm移動し、それらがリストされていることを確認できましたが、テストする機会がありませんでした。 WindowsUpdateとブートループに感謝します。

それはおそらくうまくいくでしょうが、次のものがもう1つのディレクトリを深くしたいと思うまでの一時的な回避策のように思えます。 そうです、これをNPMの問題として提起することは、おそらく良い呼びかけでしょう。

8はまだ最終的なLTSバージョンではないので、今のところ8.1.4に戻しています。

新しいバージョンのnpmには、特にnpxのサポートを含む問題がいくつかあるようです。 masterブランチにnpxのサポートを追加し、1.1.6が公式になったときにリリースします(現在テスト中です)。 しかしながら; そのブランチでも、npxは失敗します(NVM4WなしのスタンドアロンWindowsノードインストーラーでも失敗します)。

これはnpmの問題であり、NVM4Wの問題ではないと思います。 問題をクローズし、アップストリームの問題としてマークします。

@coreybutler気にしない場合のv8.1を使用しても、Windowsではバグがありますが、npxは使用可能で使用可能でした。 しかし、nvmはこれのために何もする必要はありません。

ノード8.1にはnpxサポートが付属していませんでした。 8.1で使用している場合、npmをアップグレードするには、行のどこかでnpm install -g npmを実行している必要があります。 npxコマンドはnpmv5.3.0で追加され、npm5.3.0に同梱された最初のバージョンのNodeは8.2.1でした。 具体的な詳細については、#288を参照してください。

ええ..あなたはおそらく正しいです。 npmをアップグレードしたことを覚えています。

私は同じ問題を抱えていました、私が持っている解決策は次のとおりです:

  1. 8.2.1をインストールすると失敗しますが、問題ありません。
  2. v6.11.2をインストールし、2つのファイル(npmとnpm.cmd)を/ c:/ [username] /AppData/Roaming/nvm/v6.11.2からフォルダーv8.2.1にコピーします。
  3. フォルダv8.2.1で、 git clone https://github.com/npm/npm.git実行します

その後、あなたは良いはずです

ありがとう@michaelkdhそれは私のために働きます。 👍
少し違うのは、「npm.git」のクローンを作成すると、「npm」フォルダーが作成されたことです。 そして、「npm」フォルダを「node_modules」に移動する必要がありました。

@ gblue1223同じことですが、npmが必要です。 乾杯、

@coreybutlerリンクした問題に

最新(1.1.6)をインストールし、 C:/Users/<username>/AppData/Roaming/nvm代わりにC:/nvmをインストールフォルダーとして選択すると、機能するはずです。 8.4.0インストールに問題はありません

私にとっては、使用してnvm rootのパスに変更するnvm仕事しませんでしたが、私は奇妙なエラーメッセージを得ました。 nvm <commands>コピーされず、 nodeさえ機能しなくなりました。

手動でクローニングnpm @michaelkdhもしなかった仕事を提案し、クリーンインストールに比べハック思えるよう

@ peterbakonyi05インストールするためだけにnvmフォルダーを再定義するのは、まだハックです。

@Sieabah同意します、全体の問題は奇妙です。 しかし、私はそれが他の2つの提案された解決策よりもまだ優れていると思います(実際にはそれらのどれも私のために働きませんでした)

まだこれに遭遇している人のために、誰かがこのエラーを再現するための手順を提供できますか? それともスクリーンキャスト? 私はまだこれが実際に動いているのを見ていません。

また、多くの人が端末からコピー/貼り付けしていることに気づきました...そして/c/whatever 、ラムダなどの構文が表示され続けています...これらはすべて人々がCygwinのようなものを使用していることを示しています、git shells、cmderなど。これらのシェルは_常にWindowsプラットフォームの標準に準拠しているわけではなく_、パスの読み取り方法に影響を与えることに注意してください。 これを引用している他のいくつかの問題があるので、投稿する前に標準の端末ですべてを試して、それが端末シェルの問題ではなく、NVM4Wの問題であることを確認してください。

@coreybutler cmd.exeを使用して、

C:\ Users \ Christopher> nvm install 8.4.0
node.jsバージョン8.4.0(64ビット)をダウンロードしています...
コンプリート
C:\ Users \ Christopher \ AppDataRoamingnvm \ tempを作成しています

npmバージョン5.3.0をダウンロードしています...完了
npmv5.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-pkgnode_modules \ load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish:ファイル名または拡張子が長すぎます。

C:\ Users \ Christopher> where nvm
C:\ Users \ Christopher \ AppDataRoamingnvmnvm.exe

C:\ Users \ Christopher> nvm install 8.4.0
node.jsバージョン8.4.0(64ビット)をダウンロードしています...
コンプリート
C:\ Users \ Christopher \ AppDataRoamingnvm \ tempを作成しています

npmバージョン5.3.0をダウンロードしています...完了
npmv5.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-pkgnode_modules \ load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish:ファイル名または拡張子が長すぎます。

C:\ Users \ Christopher> whereノード
C:\ Program Filesnodejsnode.exe

C:\ Users \ Christopher> where npm
C:\ Program Filesnodejsnpm
C:\ Program Filesnodejsnpm.cmd

それが違いを生むなら、私はnvmバージョン1.1.5にもいます(多分あなたは1.1.6にいますか?)

1.1.6にアップグレードするとこの問題が修正されることを確認できます。 一部のファイルパス管理でネイティブのGoライブラリが使用されているように見えるため、理にかなっています。

これは、ファイルパスのバグがnpm自体ではなくnvm内にあったことも意味します。 npmに提出されたバグは、もう一度確認する必要があるかもしれません。

@ computerquip-streamlabsに感謝します。 私はこの問題を抱えて、nvmをアップグレードすることで解決しました。

scoop install [email protected]

そして、nvmを使用してノード8.7.0をインストールできます。

nvm 1.1.6をインストールすると、「npmのインストール:ファイル名または拡張子が長すぎます」のバグが修正されます。

差出人: C:\ Users \ [username] \ AppDataRoamingnvm

  1. ファイルsettings.txtを変更します
root: C:\nvm 
path: C:\Program Files\nodejs 
arch: 64 
proxy: none
  1. 2つのファイルelevate.cmdelevate.vbsを次の場所にコピーします: C:nvm

それからそれは私のために働いた!

複数のユーザーがまだこれに遭遇しているため、再開します。

FWIW、私はWindows 10を実行していますが、長いファイルパスを有効にしましたが、6.xより前のノードバージョンをインストールできませんでした... npm v 5.6の長いファイルパスの問題のため、nvm1.1.6にアップグレードします私の問題を修正しました。

このページは役に立ちましたか?
0 / 5 - 0 評価