Nvm-windows: nvm tidak berfungsi dalam situasi 32/64 bit untuk Windows 7

Dibuat pada 18 Jul 2016  ·  10Komentar  ·  Sumber: coreybutler/nvm-windows

Lingkungan Saya

  • [X] Windows 7 atau lebih rendah (tidak benar-benar didukung karena EOL)
  • [ ] Windows 8
  • [ ] Windows 8.1
  • [ ] Windows 10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016
  • [] Penginstalan Windows saya bukan bahasa Inggris.

    Aku sudah...

  • [X] baca README untuk mengetahui masalah npm gotchas & antivirus.

  • [X] meninjau wiki untuk memastikan masalah saya belum terselesaikan.
  • [X] diverifikasi Saya menggunakan akun dengan hak administratif.
  • [X] menelusuri masalah (terbuka dan tertutup) untuk memastikan ini bukan duplikat.
  • [X] memastikan ini bukan pertanyaan tentang cara menggunakan NVM untuk Windows, karena gitter digunakan untuk pertanyaan dan komentar.

    Masalah saya terkait dengan (hanya centang yang sesuai):

  • [] settings.txt

  • [] dukungan proxy
  • [X] 32 atau 64 bit mendukung

    Perilaku yang Diharapkan

Saya menjalankan Windows 7/64 bit
Saya menginstal (dengan admin priv) NVM untuk Windows 1.1.1. Dari sana, saya gunakan

nvm install 6.1.0 all
nvm install 6.3.0 all

Saya kemudian menelepon
nvm list
yang menghasilkan

C:\Users\kagentes>nvm list
    6.3.0
    6.1.0

Saya kemudian lari
nvm use 6.3.0 64

lalu
node -v
dan diharapkan mendapatkan
v6.3.0

Perilaku Sebenarnya

Saat berlari
node -v
saya mendapat

'node' is not recognized as an internal or external command,
operable program or batch file.

Juga bahkan setelah mengatur perintah penggunaan nvm, saya perhatikan daftar tampaknya tidak mengkonfirmasi perintah "gunakan" berfungsi. Seperti dalam:

C:\Users\kagentes>nvm use 6.3.0 64
Now using node v6.3.0 (64-bit)

C:\Users\kagentes>nvm list

    6.3.0
    6.1.0

Dari tangkapan layar di halaman https://github.com/coreybutler/nvm-windows , saya percaya bahwa perintah nvm list seharusnya mengembalikan sesuatu seperti ini di bawah ini (tetapi saya TIDAK mendapatkan ini )

C:\Users\kagentes>nvm list

*   6.3.0 (In Use)
    6.1.0

Tidak ada tanda bintang atau indikator "sedang digunakan".

Mungkin, ini juga akan membantu mendiagnosis masalah, tetapi ketika saya melakukan perintah nvm arch saya mendapatkan hasil aneh berikut, terlepas dari apa yang telah saya tetapkan di nvm use :

C:\Users\kagentes>nvm arch
System Default: 64-bit.
Currently Configured: -bit.

Langkah-langkah untuk mereproduksi masalah:

Langkah-langkah untuk mereproduksi sudah diberikan di bagian perilaku yang diharapkan di atas. Saya sudah mencoba kemungkinan rekomendasi dalam masalah lain, seperti Masalah # 146, serta memulai ulang shell, memulai ulang komputer, dan memastikan semuanya dilakukan dengan hak istimewa admin. Sebelum memulai semua ini, saya menghapus Node versi sebelumnya yang ada di komputer. (kemudian instal nvm-windows dan ikuti instruksi Anda).

help wanted

Komentar yang paling membantu

@kgentes - Saya akan berasumsi bahwa sebelum nvm Anda menginstal node versi 64-bit, dan menginstal nvm menggunakan default.

Setelah menghapus node, pastikan direktori tempat node awalnya diinstal telah dihapus dan tidak hanya kosong. Untuk Windows 7, 64-bit, defaultnya adalah "C: Program Filesnodejs".

Jika direktori "nodejs" masih ada maka perintah "nvm use" tidak dapat membuat tautan simbolis ke versi node di bawah kendali nvm.

Saya memiliki masalah yang sama sampai saya menghapus direktori "nodejs" secara manual.

Semoga membantu

Semua 10 komentar

Maaf untuk menanyakan pertanyaan yang sudah jelas, tetapi apakah Anda mencoba memulai ulang jendela terminal? Di Win7, terkadang masih tersedak saat pertama kali Anda mencoba menggunakan versi tertentu (mklink).

Ya saya lakukan. Saya mencoba memulai ulang jendela terminal .. bahkan mesin .. tidak ada yang mengubah hasilnya.

OK - Saya akan menyelidiki ini jika saya punya waktu. Sayangnya, Win7 bukanlah sesuatu yang sering saya lakukan.

@kgentes - Saya akan berasumsi bahwa sebelum nvm Anda menginstal node versi 64-bit, dan menginstal nvm menggunakan default.

Setelah menghapus node, pastikan direktori tempat node awalnya diinstal telah dihapus dan tidak hanya kosong. Untuk Windows 7, 64-bit, defaultnya adalah "C: Program Filesnodejs".

Jika direktori "nodejs" masih ada maka perintah "nvm use" tidak dapat membuat tautan simbolis ke versi node di bawah kendali nvm.

Saya memiliki masalah yang sama sampai saya menghapus direktori "nodejs" secara manual.

Semoga membantu

Terima kasih @pleverett .. Saya akan mencobanya segera .. menghargai perhatian.

@pleverett TERIMA KASIH SIR! Ini bekerja seperti yang Anda iklankan! Sangat suka! Utas ini bisa ditutup. Mungkin harus ditandai sebagai solusi (tidak yakin apakah itu sesuatu yang bisa dilakukan, di sini, saya baru mengenal ekosistem ini) untuk pengguna Windows 7 masa depan yang mungkin mengalami masalah ini. NVM untuk Windows bekerja dengan lancar sekarang, setelah saya menghapus direktori "C: Program Filesnodejs" ("C: Program Files (x86) nodejs" untuk 32bit) yang tampaknya tidak dihapus secara default dari uninstaller. Bersamaan dengan direktori itu saya juga menghapus:
- "C: UsersusernameAppDataRoamingnpm"
- "C: UsersusernameAppDataRoamingnpm-cache"

Meskipun itu mungkin tidak perlu.

Bagaimanapun, semuanya bekerja. Terima kasih!

@pleverett @coreybutler

masalah terkait lainnya ---
sekarang saya dapat melihat dan mengubah versi node melalui nvm, saya bertanya-tanya apakah saya harus melihat hasil yang berbeda ketika saya melakukan:

npm config list

Saat ini, tidak ada informasi kecuali satu variabel di bawah yang berubah.
user-agent = "npm/3.10.3 node/v6.3.0 win32 ia32"

semua lainnya tetap sama. Dan tampaknya hanya ada satu versi modul node yang diinstal secara global.

jika saya hanya mengubah dari versi 64-bit dari 6.3.0 ke versi 32-bit dari 6.3.0, apakah saya akan memiliki instalasi modul node global yang sama? atau akankah itu membuat yang berbeda? Atau apakah saya perlu melakukan perubahan versi untuk mendapatkan kumpulan modul node yang diinstal secara global? Idealnya, saya akan berpikir itu akan menjaga konteks unik untuk setiap versi bit (karena modul node asli seperti libxml - ??? dll), tetapi saya dapat melihat mengapa orang lain mungkin tidak suka bekerja seperti itu.

Apakah saya masih salah menggunakannya? atau apakah ini bug terkait?

karena ini masih bekerja di utas yang sama, saya ingin membukanya kembali daripada membuat masalah baru ... [lihat komentar sebelumnya untuk status saya yang diperbarui]

@kgentes - Maaf saya melewatkan ini ... mungkin masalahnya berbeda.

Jika Anda hanya beralih dari 32-> 64bit atau sebaliknya, NVM4W akan menggunakan direktori node_modules global yang sama. Ini dilakukan dengan sengaja, terutama untuk menjaga jejak keseluruhan lingkungan Node seminimal mungkin. Memiliki direktori instalasi terpisah untuk kedua 32/64 bit akan menggandakan jejak sebagian besar pengguna ... dan jejak keseluruhan adalah sesuatu yang sebagian besar pengguna bahkan tidak memikirkannya sampai mereka kehabisan ruang. Meskipun demikian, saya cenderung menggunakan direktori instalasi individu berdasarkan versi + arsitektur proc. Ini benar-benar harus terserah pengguna, dan seperti yang Anda katakan, ini merusak beberapa paket asli.

Saya menutup ini karena topiknya sedikit berbeda. Jangan ragu untuk membuka terbitan baru jika Anda mau.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat