Nvm-windows: mklinkはWindows10では信頼できません

作成日 2017年05月04日  ·  3コメント  ·  ソース: coreybutler/nvm-windows

私の環境

  • [] Windows 7以下(EOLのため、実際にはサポートされていません。詳細についてはwikiを参照してください)
  • [ ] ウィンドウズ8
  • [] Windows 8.1
  • [X] Windows 10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016

  • []私のWindowsインストールは英語以外です。

私はすでに...

  • [X] READMEを読んで、npmの落とし穴とウイルス対策の問題に注意してください。
  • [X] wikiをレビューして、私の問題がまだ解決されていないことを確認しました。
  • [X]管理者権限を持つアカウントを使用していることを確認しました。
  • [X]は、問題(オープンおよびクローズ)を検索して、これが重複していないことを確認しました。
  • [X]は、質問やコメントにgitterが使用されるため、forWindowsの使用方法に関する質問ではないことを確認しました。

私の問題は関連しています(該当するものだけをチェックしてください):

  • [] settings.txt
  • []プロキシサポート
  • [] 32ビットまたは64ビットのサポート

予想される行動

nvm use <version>は、 C:\ Program Files \ nodejsまたはファイルsettings.txtのパス引数で指定された値にシンボリックリンクを作成する必要があります

実際の動作

昇格したシェルからnvmuseを実行しても、シンボリックリンクが常に作成されるとは限りません。

問題を再現する手順:

nvm install 6.9.1
nvm use 6.9.1

elevate.cmdスクリプトによってプロンプトが表示され、「はい」と答えます。シンボリックリンクは作成されません。

関連しているかどうかはわかりませんが、PowerShellからnvm useを実行しています。
また、それはちょっとランダムです。いくつかのウィンドウ10で問題が発生し、他のウィンドウでは問題が発生しません。
良い回避策は、cmd.exemklinkの実行後にシンボリックリンクが作成されるかどうかをテストすることだと思います。 シンボリックリンクが存在しない場合は、powershellコマンドnew-itemを実行してリンクを作成します

全てのコメント3件

nvm use実行した後、実際にシンボリックリンクが表示されませんか? Powershellではなく標準シェルでコマンドを実行してみましたか?

1.window10アンインストールプログラムでインストールノードを削除してください

2.nvmインストール

3.変更環境変数ウィンドウ(リファレンス

中国語の解釈:
1. window10にnvmをインストールするには、最初にコンピューター自体にインストールされているノードを削除します。これは、nvmがwindow10にインストールされているnvmを管理できないためです(レジストリの変更に失敗したと報告されています)。
2. nvmをインストールした後、nvm自体を使用してノードをインストールします
3. NODE_PATHをC:\ Program Files \ nodejsに変更します。nvmは「C:\ ProgramFiles \ nodejs」にソフト接続を作成し、「nvmroot」に接続するためです(nvm rootはノードの実際のディレクトリを指します)

@coreybutler :いいえ

Powershellではなく標準シェルでコマンドを実行してみましたか?

=>要点はPowerShellから実行することです。 実際、私は多くの依存関係をインストールしてVMを構成するスクリプトを実行します。 これがスクリプトのサブセットです

$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ファイルに入れて、そのまま実行できるはずです。 変数をenvに追加し、フォルダーの場所をPATHに追加するAdd-Env関数とAdd-Path関数についてコメントしました。 また、以前にインストールされていた場合は基本的にnvmをアンインストールするアンインストールスクリプト呼び出しについてもコメントしました。 また、見つけた回避策についてコメントしました。シンボリックリンクを手動で作成します。

@ youzaiyouzai666 :Windows 10 Enterprise

このページは役に立ちましたか?
0 / 5 - 0 評価