Nvm-windows: pemasangan nvm gagal dengan "Nama file atau ekstensi terlalu panjang"

Dibuat pada 21 Jul 2017  ·  25Komentar  ·  Sumber: coreybutler/nvm-windows

Lingkungan Saya

Windows 8

Saya menggunakan versi NVM4W:

1.1.5

Masalah saya terkait dengan (hanya centang yang sesuai):

  • [] settings.txt
  • [] dukungan proxy (Sudahkah Anda mencoba versi 1.1.0+?)
  • [] Dukungan 32 atau 64 bit (Sudahkah Anda mencoba versi 1.1.3+?)
  • [] Karakter melarikan diri (Sudahkah Anda mencoba versi 1.1.6+?)
  • [x] Lingkungan shell standar (terminal / PowerShell)
  • [] Lingkungan shell non-standar (Cmder, Hyper, Cygwin, git)

Perilaku yang Diharapkan

Instal versi node 8.2.1

Perilaku Sebenarnya

Gagal dengan kesalahan The filename or extension is too long

Langkah-langkah untuk mereproduksi masalah:

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

Meskipun ini _adalah masalah, saya ragu ada cara langsung untuk memperbaikinya. Namun, membuat masalah ini untuk membagikan bagaimana saya mengatasinya dan bagaimana mungkin hal itu dapat dihindari.

Saya menginstal versi pra-rilis terbaru dari nvm ( v1.1.6 ) tetapi kali ini menginstalnya ke C:\nvm\ untuk menghemat panjang jalur. Berhasil memasang simpul v8.2.1 setelah ini. Apakah menurut Anda masuk akal untuk menginstal nvm ke jalur ini secara default?

upstream-bug

Komentar yang paling membantu

Jika Anda menginstal terbaru (1.1.6) dan alih-alih C:/Users/<username>/AppData/Roaming/nvm Anda memilih C:/nvm sebagai folder instalasi, itu akan berfungsi. Saya tidak mengalami masalah saat memasang 8.4.0 :)

Bagi saya, menggunakan nvm root untuk mengubah jalur nvm tidak berfungsi, saya mendapat pesan kesalahan yang aneh. Itu tidak menyalin nvm <commands> dan bahkan node berhenti bekerja.

Mengkloning npm secara manual seperti yang disarankan @michaelkdh juga tidak berfungsi, dan tampak seperti hackish dibandingkan dengan instalasi yang bersih

Semua 25 komentar

Ada yang salah dengan penginstalan ini ... Apakah Anda memiliki dua versi NVM yang diinstal secara bersamaan?

Mungkin sudah terlambat pada saat ini, tetapi apa yang dihasilkan echo %NVM_SYMLINK% ?

Tidak. Saya tidak memiliki 2 versi NVM yang diinstal pada saat kesalahan terjadi.

Mungkin sudah terlambat pada saat ini, tetapi apa yang dihasilkan echo %NVM_SYMLINK% ?

Sebenarnya belum terlambat. Saya memiliki terminal terbuka yang masih memiliki lingkungan yang lebih tua.

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

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

Selain itu, saya telah menginstal dan menggunakan beberapa versi node melalui NVM sebelumnya:

λ 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

Saya mengalami masalah yang sama.
Windows 10
Cangkang cmder
NVM 1.1.5

Ini terjadi dengan simpul 8.2.0 dan 8.2.1
8.1.4 dan 8.1.3 berfungsi dengan baik.

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

Saya ingin tahu apakah kita harus mengambil ini dengan npm upstream ..
@clowenhg Jika Anda menginstal nvm langsung ke C:\nvm , masalah akan terselesaikan tetapi instalasi node Anda yang sudah ada tidak akan dikenali lagi. Saya telah memindahkan beberapa folder node ke C:\nvm dan dapat melihatnya terdaftar tetapi tidak pernah mendapat kesempatan untuk mengujinya. Berkat pembaruan windows dan boot loop.

Itu mungkin akan berhasil, tetapi sepertinya pekerjaan sementara sampai hal berikutnya ingin masuk satu direktori lagi lebih dalam. Jadi ya, mengangkat ini sebagai masalah untuk NPM mungkin akan menjadi keputusan yang bagus.

Melihat 8 belum pada versi LTS finalnya, saya hanya kembali ke 8.1.4 untuk saat ini.

Tampaknya ada sejumlah masalah dengan versi baru npm, khususnya yang menyertakan dukungan npx. Saya telah menambahkan dukungan untuk npx di cabang master dan akan merilisnya ketika 1.1.6 resmi (saat ini sedang diuji). Namun; bahkan di cabang tersebut, npx masih gagal (juga gagal melalui installer Windows Node mandiri tanpa NVM4W).

Saya yakin ini adalah masalah npm, bukan masalah NVM4W. Saya menutup masalah dan menandainya sebagai masalah upstream.

@coreybutler Klarifikasi kecil jika Anda tidak keberatan. Mengapa Anda harus membuat perubahan untuk dukungan npx? Bahkan dengan node v8.1 , npx tersedia dan dapat digunakan, meskipun bermasalah di windows. Tapi nvm seharusnya tidak melakukan apapun untuk ini.

Node 8.1 _not_ dikirimkan dengan dukungan npx. Jika Anda memilikinya di 8.1, Anda harus menjalankan npm install -g npm suatu tempat di sepanjang baris untuk meningkatkan npm. Perintah npx ditambahkan di npm v5.3.0, dan versi pertama Node yang dikirimkan dengan npm 5.3.0 adalah 8.2.1. Untuk detail spesifik, lihat # 288.

Ya .. Anda mungkin benar. Saya ingat mengupgrade npm.

Saya memiliki masalah yang sama, solusi yang saya miliki adalah:

  1. instal 8.2.1, yang akan membuat Anda gagal, itu bagus.
  2. instal v6.11.2 dan salin 2 file (npm dan npm.cmd) dari /c:/[username]/AppData/Roaming/nvm/v6.11.2 ke folder v8.2.1
  3. di folder v8.2.1, lakukan git clone https://github.com/npm/npm.git

maka kamu harus menjadi baik

Terima kasih @michaelkdh Ini berhasil untuk saya. 👍
Hal yang sedikit berbeda adalah ketika saya mengkloning 'npm.git' folder 'npm' dibuat. Dan saya harus memindahkan folder 'npm' ke 'node_modules'.

@ gblue1223 hal yang sama, hanya perlu npm di tempat. Bersulang,

@ coreybutler Menurut masalah yang Anda

Jika Anda menginstal terbaru (1.1.6) dan alih-alih C:/Users/<username>/AppData/Roaming/nvm Anda memilih C:/nvm sebagai folder instalasi, itu akan berfungsi. Saya tidak mengalami masalah saat memasang 8.4.0 :)

Bagi saya, menggunakan nvm root untuk mengubah jalur nvm tidak berfungsi, saya mendapat pesan kesalahan yang aneh. Itu tidak menyalin nvm <commands> dan bahkan node berhenti bekerja.

Mengkloning npm secara manual seperti yang disarankan @michaelkdh juga tidak berfungsi, dan tampak seperti hackish dibandingkan dengan instalasi yang bersih

@ peterbakonyi05 Mendefinisikan ulang folder nvm hanya untuk menginstalnya juga masih

@Sieabah Saya setuju, seluruh masalahnya aneh. Namun saya pikir itu masih lebih baik daripada 2 solusi yang diusulkan lainnya (sebenarnya tidak ada yang berhasil untuk saya)

Bagi mereka yang masih mengalami ini, dapatkah seseorang memberikan langkah-langkah untuk membuat ulang kesalahan ini? Atau mungkin screencast? Saya belum benar-benar melihat ini beraksi.

Juga, saya perhatikan banyak orang menyalin / menempel dari terminal mereka ... dan sintaks seperti /c/whatever , lambda, dll terus muncul .... semuanya menunjukkan orang menggunakan hal-hal seperti Cygwin , git shells, cmder, dll. Harap dicatat bahwa shell ini _tidak selalu mengikuti standar platform Windows_, dan _do_ mempengaruhi cara membaca path. Ada beberapa masalah lain yang mengutip ini, jadi coba semuanya di terminal standar sebelum memposting untuk memastikan itu adalah masalah NVM4W dan bukan masalah terminal-shell.

@coreybutler Ini dia, dengan cmd.exe

C: \ Users \ Christopher> nvm install 8.4.0
Mengunduh node.js versi 8.4.0 (64-bit) ...
Lengkap
Membuat C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

Mendownload npm versi 5.3.0 ... Selesai
Menginstal 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-pkgnode load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: Nama file atau ekstensi terlalu panjang.

C: \ Users \ Christopher> di mana nvm
C: \ Users \ Christopher \ AppDataRoamingnvmnvm.exe

C: \ Users \ Christopher> nvm install 8.4.0
Mengunduh node.js versi 8.4.0 (64-bit) ...
Lengkap
Membuat C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

Mendownload npm versi 5.3.0 ... Selesai
Menginstal 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-pkgnode load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: Nama file atau ekstensi terlalu panjang.

C: \ Users \ Christopher> di mana node
C: \ Program Filesnodejsnode.exe

C: \ Users \ Christopher> di mana npm
C: \ Program Filesnodejsnpm
C: \ Program Filesnodejsnpm.cmd

Saya juga menggunakan nvm versi 1.1.5 jika itu membuat perbedaan (mungkin Anda menggunakan 1.1.6?)

Saya dapat mengonfirmasi bahwa peningkatan ke 1.1.6 memperbaiki masalah ini. Masuk akal karena sepertinya beberapa manajemen jalur file sekarang menggunakan pustaka Go asli.

Itu juga berarti bahwa bug jalur file berada dalam nvm daripada npm itu sendiri. Setiap bug yang diajukan di npm mungkin ingin diperiksa lagi.

Terima kasih @ computerquip-streamlabs. Saya mendapat masalah ini dan diselesaikan dengan memutakhirkan nvm dengan,

scoop install [email protected]

Dan kemudian saya bisa menginstal node 8.7.0 dengan nvm.

Menginstal nvm 1.1.6 memperbaiki bug dengan "npm menginstal: Nama file atau ekstensi terlalu panjang"

Dari: C: \ Users \ [username] \ AppDataRoamingnvm

  1. Ubah file settings.txt
root: C:\nvm 
path: C:\Program Files\nodejs 
arch: 64 
proxy: none
  1. Salin dua file elevate.cmd dan elevate.vbs ke: C: nvm

Kemudian itu berhasil untuk saya!

Membuka kembali karena beberapa pengguna masih mengalami ini.

FWIW, saya menjalankan Windows 10, saya memang mengaktifkan jalur file yang panjang, tetapi masih tidak dapat menginstal versi node di atas 6.x ... karena masalah dengan jalur file yang panjang di npm v 5.6, memutakhirkan ke nvm 1.1.6 memperbaiki masalah untuk saya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat