[ ] Serveur Windows 2016
[ ] Mon installation Windows n'est pas en anglais.
nvm use <version>
doit créer un lien symbolique dans C:\Program Files\nodejs ou à la valeur fournie dans l'argument de chemin dans le fichier settings.txt
Le lien symbolique n'est pas toujours créé, même si j'exécute nvm use à partir d'un shell élevé.
nvm install 6.9.1
nvm use 6.9.1
Je suis invité par le script elevate.cmd, je réponds oui, le lien symbolique n'est pas créé
Je ne sais pas si c'est lié mais je lance nvm use
depuis powershell.
De plus, c'est un peu aléatoire, sur certaines fenêtres 10, j'ai le problème, sur d'autres non.
Je pense qu'une bonne solution de contournement serait de tester si le lien symbolique est créé après avoir exécuté cmd.exe mklink. Si le lien symbolique n'est pas présent, exécutez la commande powershell new-item pour créer le lien
Ne voyez-vous pas réellement le lien symbolique après avoir exécuté nvm use
? Avez-vous essayé d'exécuter la commande dans un shell standard au lieu de Powershell ?
Interprétation chinoise :
1. Pour installer nvm sur windows10, supprimez d'abord le nœud qui a été installé sur l'ordinateur lui-même, car nvm ne peut pas gérer le nvm installé sur windows10 (échec signalé pour modifier le registre)
2. Après avoir installé nvm, utilisez nvm lui-même pour installer le nœud
3. Modifiez NODE_PATH en C:\Program Files\nodejs ; car nvm crée une connexion logicielle dans "C:\Program Files\nodejs" et se connecte à "nvm root" (nvm root pointe vers le répertoire réel du nœud)
@coreybutler : Non, je ne vois pas le lien symbolique après avoir exécuté nvm use.
Avez-vous essayé d'exécuter la commande dans un shell standard au lieu de Powershell ?
=> Le tout est de l'exécuter à partir de powershell. En effet je lance un script qui installe plein de dépendances et configure la VM. Voici un sous-ensemble du script
$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
#}
Vous devriez pouvoir mettre ce script dans un fichier ps1 et l'exécuter tel quel. J'ai commenté les fonctions Add-Env et Add-Path qui ajoutent respectivement des variables à l'env et l'emplacement du dossier au PATH. J'ai également commenté l'appel de script de désinstallation qui désinstalle essentiellement nvm s'il en a été installé auparavant. J'ai également commenté la solution de contournement que j'ai trouvée : créez le lien symbolique manuellement.
@youzaiyouzai666 : Je