我正在嘗試使用安裝在適用於 Linux 的 Windows 子系統上的 Ubuntu 或 Debian Linux 發行版上的 WebStorm 中提供的偵錯功能來偵錯 nodejs 程式碼。
我按照下面網站上列出的說明進行操作,但我的 WebStorm 安裝拒絕檢測我在系統上安裝的 Linux 發行版,並且我已經使用 wslconfig.exe 設定了預設發行版。
- https://stackoverflow.com/questions/51912772/how-to-use-wsl-as-default-terminal-in-webstorm-or-any-other-jetbrains-products
- https://blog.jetbrains.com/webstorm/2018/06/webstorm-2018-2-eap-182-3208/
此外,我似乎沒有辦法手動告訴 WebStorm 我的系統上安裝了 Linux 發行版。
問題:
- WebStorm 是否缺少與 WSL 分發偵測相關的設定?
- 如何讓 WebStorm 檢測我的 Linux 發行版?
請注意:這是為了使用 WebStorm 來中斷偵錯功能,而不僅僅是終端使用。我能夠讓終端正常運行,但需要 WebStorm 中提供的偵錯功能。
答案1
您可以嘗試手動新增您的發行版~\.WebStorm2019.1\config\options\wsl.distributions.xml
。看https://youtrack.jetbrains.com/issue/PY-32424#focus=streamItem-27-3332472.0-0,https://www.jetbrains.com/help/ruby/configuring-remote-interpreters-using-wsl.html#custom_wsl了解更多。請注意,您需要指定可執行檔的完整路徑。短名稱僅適用於預設安裝根目錄。
答案2
如果您正在執行的 WSL 版本不是使用 Windows 應用程式商店安裝的,這可能會成為問題。 JetBrains 有一個官方修復程序,但如果您想要使用不同的方法以預設方式安裝 Linux 發行版,您可以在 PowerShell 中運行以下程式碼:
$REGKEY="HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
$REGITEM = "DoNotConnectToWindowsUpdateInternetLocations"
function Set-RegistryItem {
param (
# Registry key to set
[Parameter(Mandatory=$true)]
[string]
$RegistryKey,
# Registry item to set
[Parameter(Mandatory=$true)]
[string]
$RegistryItem,
# Value to Set
[Parameter(Mandatory=$true)]
[string]
$Value,
# Value type to Set
[Parameter(Mandatory=$true)]
[string]
$Type
)
if ($(Get-ItemProperty -Path Registry::$RegistryKey -Name $RegistryItem)) {
New-ItemProperty -Path Registry::$RegistryKey -Name $RegistryItem -PropertyType $Type -Value $Value -Confirm -Force
}
}
Set-RegistryItem `
-RegistryKey "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" `
-RegistryItem DoNotConnectToWindowsUpdateInternetLocations `
-Value 0 `
-Type DWord
Set-RegistryItem `
-RegistryKey HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore `
-RegistryItem AutoDownload `
-Value 4 `
-Type DWord
Set-RegistryItem `
-RegistryKey HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore `
-RegistryItem RemoveWindowsStore `
-Value 0 `
-Type DWord
這將暫時啟用 Windows 應用程式商店並允許您安裝可能需要的程式(Linux 發行版)。如果您的群組原則阻止 PowerShell 的執行,那麼您就不走運了。
此外,如果已被群組原則停用,則當您重新啟動電腦時,Windows 應用程式商店將被停用。
一旦透過 Windows 商店以預設方式安裝了 Linux 發行版,JetBrians 幾乎會立即選擇它。