我正在尝试使用安装在 Windows Subsystem for Linux 上的 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 应用商店也将被禁用。
一旦通过 Windows 商店以默认方式安装了 Linux 发行版,JetBrians 几乎会立即选择它。