Всем привет.
Хочу поделиться полученными знаниями.
Сразу спасибо Илье Кирову за наводку.
Далее - за основу брал этот топик - Adapter debuggen mit VSCode.
Итак - идея - в wsl поставить линукс, в него иоброкер, но среду разработки и отладки использовать родную виндовую - vscode.
Теперь опишу по порядку:
-
Ставим wsl на Windows 10. Важно - ставим wsl 2, ибо рекомендуется vscode, да и некоторые фичи, как я понимаю именно версии 2 - необходимы.
-
В процессе - ставите нужный дистрибутив линукса. Я брал Дебиан, но не важно.
-
Теперь важно - необходимо доработать дистрибутив напильником - а именно нам надо настроить wsl.conf.
- Оттуда нам важно как минимум:
но и остальное не помешает.options = "metadata,umask=22,fmask=11"
Напомню, надо делать от рута.
По умолчанию
для вашего пользователя работает.sudo su -
- Далее - апдейтим пакеты, и ставим node & iobroker.
- Что сделал дальше, для удобства - добавляем вашего основного пользователя в группу iobroker:
sudo usermod -a -G iobroker имя_пользователя
- Сделал автостарт ssh и iobrokera, плюс маппинг портов в ссш, брокер, и на будущее - в отладку.
- Для этого создал файл
start_ssh_mapports.ps1
wsl.exe -u root /etc/init.d/ssh start wsl.exe -u root /etc/init.d/iobroker.sh start $wsl_ip = (wsl hostname -I).trim() Write-Host "WSL Machine IP: ""$wsl_ip""" netsh interface portproxy add v4tov4 listenport=22 connectport=22 connectaddress=$wsl_ip netsh interface portproxy add v4tov4 listenport=8081 connectport=8081 connectaddress=$wsl_ip netsh interface portproxy add v4tov4 listenport=9929 connectport=9929 connectaddress=$wsl_ip
- И добавил его "Планировщик заданий", условием старта после моего логина.
- Для этого создал файл
- Теперь ssh и iobroker вам доступны по вашим сетевым интерфейсам в винде. Я использую
127.0.0.0:22
http://127.0.0.1:8081/
соответственно.
- Оттуда нам важно как минимум:
-
Теперь устанавливаем vscode.
- Запускаем - и устанавливаем в нем ms-vscode-remote.remote-wsl, можно прямо по ссылке, или локально через
View
->Extensions
- Теперь коннектимся к своему wsl через .
- Там выбираем
New Windows using Distro
, см. Выбираем дистрибутив, и потом - ваш дистрибутив. В этот момент в вашу домашнем каталоге в линуксе будут сделаны нужные настройки.
- Запускаем - и устанавливаем в нем ms-vscode-remote.remote-wsl, можно прямо по ссылке, или локально через
-
Вы уже готовы работать со кодом в wsl.
-
Но пока не готовы к отладке. Так как отладка ходит по "дереву" иоброкера, то я сразу решил кодить в самой инсталляции брокера, т.е. в
/opt/iobroker/node_modules
.- Для этого поставил через интерфейс иоброкера нужный адаптер.
- Потом под своим пользователем удалил его папку (предварительно остановив брокер), и , с гита, стащил код, находясь прямо в
node_modules
:git clone ...
- Дополнительно настроим sudoers, то есть
/etc/sudoers/имя_вашего_пользователя
имя_вашего_пользователя ALL = (root) NOPASSWD: /bin/su - iobroker имя_вашего_пользователя ALL = (iobroker) NOPASSWD: ALL
- Теперь в консоли линукса (опять же через vscode - справа, внизу, закладка
Terminal
cd /opt/iobroker/ node --inspect-brk --inspect=0.0.0.0:9229 node_modules/ваш_модуль/main.js --force --logs
- Можно начинать удаленно отлаживать, но для этого надо сделать еще кое-что - настроить подключение к удаленной отладке в vscode:
- Идем в
Run
->Add Configuration
, делаем файл такого вида:{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", { "type": "node", "request": "attach", "name": "Attach to the process", "address": "127.0.0.1", "port": 9229 } ] }
- Идем в
- Теперь мы готовы стартануть отладку:
-
Собственно все.
Оригинал лежит здесь.