Nvm-windows: tidak bekerja dengan .nvmrc

Dibuat pada 20 Mei 2016  ·  8Komentar  ·  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 Inti
  • [ ] Windows Server 2012
  • [ ] Windows Server 2012 R2
  • [ ] Windows Server 2016
  • [ ] Instalasi Windows saya bukan bahasa Inggris.

    Aku sudah...

  • [x] baca README untuk mengetahui masalah npm gotcha & antivirus.

  • [x] meninjau wiki untuk memastikan masalah saya belum teratasi.
  • [x] terverifikasi Saya menggunakan akun dengan hak administratif.
  • [x] mencari 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 (centang hanya yang berlaku):

  • [ ] pengaturan.txt

  • [ ] dukungan proksi
  • [ ] Dukungan 32 atau 64 bit

    Perilaku yang Diharapkan

Hasil yang sama dengan nvm use 4.4.4

Perilaku Sebenarnya

Keluaran: node v (64-bit) is not installed.

Langkah-langkah untuk mereproduksi masalah:

membuat file .nvmrc dengan 4.4.4 sebagai versi simpul.
buka baris perintah dan jalankan nvm use di folder yang sama dengan file.

duplicate wontfix

Komentar yang paling membantu

Benjolan kecil untuk masalah ini. Hanya berlari ke dalamnya.

Ini tidak bisa terlalu sulit. Inilah yang harus dilakukan jika versi tidak diberikan ke nvm use :

  1. Ambil versi dari .nvmrc
  2. Apakah versi ini diinstal? Jika tidak -> instal
  3. Apakah versi ini sedang digunakan? Jika tidak -> gunakan.
  4. Selesai

Dengan kata lain, tanpa nomor versi yang ditentukan, nvm use adalah kombinasi dari nvm install < .nvmrc dan nvm use < .nvmrc (perintah semu - tidak akan benar-benar berfungsi sekarang).

Tidak ada banyak lagi untuk itu.

Semua 8 komentar

.nvmrc tidak pernah didukung. Itu fitur khusus untuk nvm, bukan NVM untuk Windows.

@coreybutler Saya dari Proyek Akuntabilitas Bencana dan kami memiliki beberapa pengembang yang menggunakan windows dan tidak dapat memanfaatkan .nvmrc . Kami mulai mengadopsi nvm-windows untuk pengembang web sukarelawan kami dan saya ingin Anda mempertimbangkan kembali untuk mendukung .nvmrc . Ini adalah situs tempat kami menggunakan .nvmrc.

@inunotaisho26 - Pada dasarnya, proyek ini berfokus pada persiapan Node seolah-olah diinstal dengan cara yang sama Node akan diinstal tanpa manajer versi. .nvmrc mulai masuk ke masalah manajemen lingkungan tertentu, yang secara drastis meningkatkan cakupan proyek. Saya melihat "manajemen lingkungan" menjadi masalah yang berbeda secara fundamental dari "manajemen versi". Kami telah membahas kasus penggunaan yang berbeda ini di grup kerja manajemen versi .

Meskipun fitur ini telah diminta sebelumnya, saya tidak memiliki cukup waktu luang untuk mendukungnya. Karena jumlah orang yang meminta solusi manajemen lingkungan umum (selain hanya .nvmrc), saya bereksperimen dengan ide-ide untuk aplikasi manajemen lingkungan komersial untuk merampingkan proses ini. Persyaratan waktu untuk mendukung daftar keinginan besar komunitas akan membutuhkan pendanaan atau sponsor, jadi saya mungkin akan bersandar pada infrastruktur yang telah saya bangun untuk Fenix . Hasil tangkapan: tidak ada ETA.

Yang mengatakan, lihat peta jalan . Solusi "gratis" yang saya usulkan adalah sistem kait, mirip dengan git pre-commit , post-push , dll. Ini akan memungkinkan pengembang untuk membuat skrip mereka sendiri yang kondusif untuk lingkungan unik mereka sendiri. Pikirkan tindakan seperti post-install , pre-use , pre-execute , dll. Ini akan memungkinkan pengguna untuk menulis skrip kait yang mencari file .nvmrc dan mengganti versi dengan cepat .

@coreybutler Jadi pada dasarnya dua pendekatan berbeda untuk menginstal beberapa versi node kan?

semacam. Ada dua filosofi yang berbeda, tetapi lebih tentang _using_ Node daripada menginstalnya.

Filosofi 1: Penggunaan Asli (Proses Langsung)
Node itu sendiri tidak mendukung .nvmrc . Itu hanya menginstal executable dan npm-nya sendiri. Ini _used_ dengan langsung menjalankan node.exe.

Filosofi 2: Penggunaan yang Diperbesar (Subproses)
.nvmrc adalah konvensi yang diperkenalkan oleh proyek nvm asli. Alih-alih memanggil node.exe secara langsung, ia menggunakan shim. Shim bertanggung jawab untuk mengonfigurasi lingkungan semu sebelum meneruskan perintah ke node yang dapat dieksekusi (mis. node adalah subproses dari shim). Di sinilah logika .nvmrc diproses. Tangkapannya, terutama pada Windows, adalah bahwa node berjalan dalam konteks shim, bukan konteks pengguna. Ini memiliki sejumlah efek/tantangan, seperti tidak selalu memberikan kredensial yang sesuai ke subproses node (kebanyakan di sekitar izin yang ditingkatkan), variabel lingkungan yang sedikit berbeda, tidak selalu mengenali partisi hard drive (seperti drive D:\), dan (dalam beberapa kasus) salah mengartikan jalur file (yaitu __dirname berperilaku tidak terduga) dll. Masalah ini dapat diatasi, tetapi mereka digabungkan ketika mempertimbangkan lingkungan perusahaan (penyebaran Active Directory, desktop terbatas, drive SAN, dll).

Manajemen versi umum memerlukan beberapa tingkat shimming untuk mencegah benar-benar menghapus/menginstal ulang node setiap kali Anda perlu mengganti versi (yang akan memakan waktu lama). NVM4W sejalan dengan pendekatan pertama dengan menggunakan symlink untuk menggeser _directory_ instalasi, sebagai lawan dari opsi 2, yang menggeser executable. Akibatnya, Anda selalu menjalankan node.exe yang dapat dieksekusi secara langsung, alih-alih menjalankannya sebagai subproses..

Benjolan kecil untuk masalah ini. Hanya berlari ke dalamnya.

Ini tidak bisa terlalu sulit. Inilah yang harus dilakukan jika versi tidak diberikan ke nvm use :

  1. Ambil versi dari .nvmrc
  2. Apakah versi ini diinstal? Jika tidak -> instal
  3. Apakah versi ini sedang digunakan? Jika tidak -> gunakan.
  4. Selesai

Dengan kata lain, tanpa nomor versi yang ditentukan, nvm use adalah kombinasi dari nvm install < .nvmrc dan nvm use < .nvmrc (perintah semu - tidak akan benar-benar berfungsi sekarang).

Tidak ada banyak lagi untuk itu.

Benjolan kecil untuk masalah ini. Hanya berlari ke dalamnya.

Ini tidak bisa terlalu sulit. Inilah yang harus dilakukan jika versi tidak diberikan ke nvm use :

1. Take version from .nvmrc

2. Is this version installed? If not -> install it

3. Is this version currently in use? If not -> use it.

4. Done

Dengan kata lain, tanpa nomor versi yang ditentukan, nvm use adalah kombinasi dari nvm install < .nvmrc dan nvm use < .nvmrc (perintah semu - tidak akan benar-benar berfungsi sekarang).

Tidak ada banyak lagi untuk itu.

Saya senang saya bukan satu-satunya yang memiliki masalah ini ...
Berpikir untuk beralih kembali ke linux untuk pengembangan :/

@thany @jeromemeichelbeck Jangan ragu untuk

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

janpio picture janpio  ·  3Komentar

leiamac picture leiamac  ·  4Komentar

thany picture thany  ·  4Komentar

webspecialist picture webspecialist  ·  5Komentar

eliavmaman picture eliavmaman  ·  6Komentar