ウィンドウズ8
1.1.5
ノードバージョン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をインストールするのは理にかなっていると思いますか?
このインストールについて何か問題があります...万が一、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.0
と8.2.1
発生しています
8.1.4
と8.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 nvmをC:\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をアップグレードしたことを覚えています。
私は同じ問題を抱えていました、私が持っている解決策は次のとおりです:
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
root: C:\nvm
path: C:\Program Files\nodejs
arch: 64
proxy: none
elevate.cmd
とelevate.vbs
を次の場所にコピーします: C:nvmそれからそれは私のために働いた!
複数のユーザーがまだこれに遭遇しているため、再開します。
FWIW、私はWindows 10を実行していますが、長いファイルパスを有効にしましたが、6.xより前のノードバージョンをインストールできませんでした... npm v 5.6の長いファイルパスの問題のため、nvm1.1.6にアップグレードします私の問題を修正しました。
最も参考になるコメント
最新(1.1.6)をインストールし、
C:/Users/<username>/AppData/Roaming/nvm
代わりにC:/nvm
をインストールフォルダーとして選択すると、機能するはずです。8.4.0
インストールに問題はありません私にとっては、使用して
nvm root
のパスに変更するnvm
仕事しませんでしたが、私は奇妙なエラーメッセージを得ました。nvm <commands>
コピーされず、node
さえ機能しなくなりました。手動でクローニング
npm
@michaelkdhもしなかった仕事を提案し、クリーンインストールに比べハック思えるよう