Я пытаюсь отладить код nodejs, используя функции отладки, доступные в WebStorm на дистрибутиве Ubuntu или Debian Linux, установленном в подсистеме Windows для Linux.
Я выполнил инструкции, указанные на сайтах ниже, но моя установка 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 будет отключен при перезагрузке компьютера, если он отключен групповой политикой.
После установки дистрибутива Linux по умолчанию через Магазин Windows JetBrians подхватывает его практически сразу.