Nvm-windows: mklink tidak dapat diandalkan di windows 10

Dibuat pada 4 Mei 2017  ·  3Komentar  ·  Sumber: coreybutler/nvm-windows

Lingkungan saya

  • [ ] Windows 7 atau lebih rendah (tidak benar-benar didukung karena EOL - lihat wiki untuk detailnya)
  • [ ] Windows 8
  • [ ] Windows 8.1
  • [X] 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] memverifikasi bahwa 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

nvm use <version> harus membuat symlink di C:\Program Files\nodejs atau pada nilai yang disediakan dalam argumen jalur di file settings.txt

Perilaku Sebenarnya

symlink tidak selalu dibuat, bahkan jika saya menjalankan nvm use dari shell yang ditinggikan.

Langkah-langkah untuk mereproduksi masalah:

nvm install 6.9.1
nvm use 6.9.1

Saya diminta oleh skrip elevate.cmd, saya menjawab ya, symlink tidak dibuat

Saya tidak tahu apakah ini terkait tetapi saya menjalankan nvm use dari PowerShell.
Juga agak acak, pada beberapa windows 10 saya memiliki masalah, pada yang lain saya tidak.
Saya percaya solusi yang baik adalah menguji apakah symlink dibuat setelah menjalankan cmd.exe mklink. Jika symlink tidak ada, jalankan perintah powershell item baru untuk membuat tautan

Semua 3 komentar

Apakah Anda tidak benar-benar melihat symlink setelah menjalankan nvm use ? Sudahkah Anda mencoba menjalankan perintah di shell standar alih-alih Powershell?

1.Harap hapus node instalasi dengan program uninstall window10

2.instal nvm

3.modifikasi jendela Variabel Lingkungan ( referensi )

interpretasi Cina:
1. Untuk menginstal nvm di window10, hapus terlebih dahulu node yang telah diinstal di komputer itu sendiri, karena nvm tidak dapat mengelola nvm yang diinstal pada window10 (dilaporkan kegagalan untuk memodifikasi registri)
2. Setelah menginstal nvm, gunakan nvm itu sendiri untuk menginstal node
3. Ubah NODE_PATH ke C:\Program Files\nodejs; karena nvm membuat koneksi lunak di "C:\Program Files\nodejs" dan menghubungkan ke "nvm root" (nvm root menunjuk ke direktori node yang sebenarnya)

@coreybutler : Tidak, saya tidak melihat symlink setelah menjalankan nvm use.

Sudahkah Anda mencoba menjalankan perintah di shell standar alih-alih Powershell?

=> Intinya adalah menjalankannya dari PowerShell. Memang saya menjalankan skrip yang menginstal banyak dependensi dan mengkonfigurasi VM. Ini adalah bagian dari skrip

$wc = New-Object System.Net.WebClient

# configure repositories
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

Get-Packageprovider -Name chocolatey
Set-PackageSource -Name Chocolatey -Trusted

Install-Package 7zip.install -ProviderName Chocolatey -RequiredVersion 16.02.0.20160811
$env:PATH+=";C:\Program Files\7-Zip"

$source = "https://github.com/coreybutler/nvm-windows/releases/download/1.1.3/nvm-setup.zip"
$archive = Join-Path $env:TEMP ($source.substring($source.lastindexOf('/') + 1))

$wc.DownloadFile($source, $archive)

echo "downloaded at: $archive"

7z x -aoa -y $archive "-o$env:TEMP"

#$uninstallScript = (Join-Path $PSScriptRoot uninstall_cmdline.ps1)
#&$uninstallScript -software "NVM for Windows*" | Out-Null

$nvmSetup = Join-Path $env:TEMP "nvm-setup.exe"
Start-Process $nvmSetup -ArgumentList @("/SILENT", "/SP-", "/SUPPRESSMSGBOXES") -Wait
ri $archive
ri $nvmSetup

$localNvmPath = Join-Path $env:APPDATA "nvm"
$defaultNodejsPath = "C:\Program Files\nodejs"
#Add-Path $localNvmPath
#Add-Env NVM_HOME $localNvmPath
ri $defaultNodejsPath -ErrorAction SilentlyContinue -Recurse -Force
nvm root $env:NVM_HOME
nvm install 4.5.0
nvm use 4.5.0
#create manually symlink if problem with nvm use, see https://github.com/coreybutler/nvm-windows/issues/266
#$nodePath = Join-Path $localNvmPath "v4.5.0"
#if ((-Not (Test-Path $nodePath) -or (-Not (Test-Path $defaultNodejsPath))))
#{
#    Start-Process powershell -Verb runAs -ArgumentList "-WindowStyle Hidden", "-Command `"&{ New-Item -Path `'$defaultNodejsPath`' -Value `'$nodePath`' -ItemType SymbolicLink }`"" -Wait -WindowStyle Hidden
#}

Anda harus dapat meletakkan skrip ini dalam file ps1 dan menjalankannya apa adanya. Saya mengomentari fungsi Add-Env dan Add-Path yang masing-masing menambahkan variabel ke env dan lokasi folder ke PATH. Saya juga mengomentari panggilan skrip uninstall yang pada dasarnya menghapus nvm jika ada yang diinstal sebelumnya. Saya juga mengomentari solusi yang saya temukan: buat symlink secara manual.

@youzaiyouzai666 : Saya menelurkan VM baru di Windows 10 Enterprise 64bits, tidak ada node sebelumnya yang diinstal.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat