[] Windows Server 2016
[] Моя установка Windows не на английском языке.
nvm use <version>
должен создать символическую ссылку в C: \ Program Files \ nodejs или в значении,
Символическая ссылка не всегда создается, даже если я запускаю nvm use из оболочки с повышенными правами.
nvm install 6.9.1
nvm use 6.9.1
Мне подсказывает скрипт elevate.cmd, отвечаю да, символическая ссылка не создается
Я не знаю, связано ли это, но я запускаю nvm use
из PowerShell.
Также это вроде случайно, на некоторых окнах 10 у меня проблема, на других - нет.
Я считаю, что хорошим обходным решением было бы проверить, создается ли символическая ссылка после запуска cmd.exe mklink. Если символическая ссылка отсутствует, запустите команду powershell new-item, чтобы создать ссылку.
Разве вы не видите символическую ссылку после запуска nvm use
? Вы пробовали запускать команду в стандартной оболочке вместо Powershell?
Китайская интерпретация:
1. Чтобы установить nvm на window10, сначала удалите узел, который был установлен на самом компьютере, потому что nvm не может управлять nvm, установленным на window10 (сообщается об ошибке изменения реестра)
2. После установки nvm используйте сам nvm для установки узла.
3. Измените NODE_PATH на C: \ Program Files \ nodejs; потому что nvm создает мягкое соединение в "C: \ Program Files \ nodejs" и подключается к "nvm root" (nvm root указывает на фактический каталог узла)
@coreybutler : Нет, я не вижу символическую ссылку после запуска nvm use.
Вы пробовали запускать команду в стандартной оболочке вместо Powershell?
=> Все дело в том, чтобы запустить его из PowerShell. Действительно, я запускаю сценарий, который устанавливает множество зависимостей и настраивает виртуальную машину. Вот подмножество скрипта
$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
#}
Вы должны иметь возможность поместить этот сценарий в файл ps1 и выполнить его как есть. Я прокомментировал функции Add-Env и Add-Path, которые соответственно добавляют переменные в env и местоположение папки в PATH. Я также прокомментировал вызов сценария удаления, который в основном удаляет nvm, если он был установлен ранее. Я также прокомментировал найденный мной обходной путь: создать символическую ссылку вручную.
@ youzaiyouzai666 : Я