- PVSM.RU - https://www.pvsm.ru -
Добрый день, друзья! В ноябре 2016 года я начал играться с плагином Nodejs [1] для Sublime Text. Плагин был маленьким и имел под катом несколько давних и хорошо известных багов.
В те дни я игрался с Nodejs и моим любимым редактором для кода был Sublime Text. По давно проторенной дорожке, я пошел на packagecontrol.io [2] и поискал плагины для Nodejs. Нашелся вот этот [1]. Поставив и поработав, я был очень разочарован, когда обнаружил, что самые некоторые заявленные фичи плагина не работают, или работают не так как заявлено…
В таких ситуациях, я обычно, иду на страничку проекта на GitHub и изучаю проект на предмет последней активности, чтобы убедиться, что проект не заброшен. Я обнаружил, что последний коммит был в 2013 году. Печалька, подумал я, учитывая, что это был единственный плагин для работы с Nodejs в Sublime Text.
Тогда я подумал… Это две частички технологии, которые мне нравятся, и я всегда хотел контрибьютить в Open Source.
План был прост, фиксить баги, с которыми я столкнусь. С течением времени, я понял, что фикс багов начал доставлять проблемы, из-за монолитной архитектуры плагина, отсутствия тестов и инструментов для отладки.
Как я упомянул ранее, я страдал от отсутствия тестов и инструментов для отладки. Фикс одного бага мог вызвать череду других багов. Более того, фикс багов на одних платформах, мог вызвать или оставить баги на других платформах. Тогда, было решено сделать жизнь проще и счастливее. =)
Много чего было отрефакторено, переделано и переосмыслено. Все изменения логически можно поделить на две группы: взаимодействие пользователя с плагином и комфорт разработчика.
Изложу все в виде списка с маленьким пояснениями зачем, как и возможно почему это было сделано.
С помощью всего вышеперечисленного, теперь мы можем фиксить баги или добавлять новый функционал, наслаждаясь процессом.
Итак, мы добрались до самой интересной части — взаимодействие пользователя с плагином. Как и в предыдущей части я перечислю список изменений и причины для этого.
В предыдущих версиях плагина, команда Nodejs Debug (+ arguments) запускала текущий файл с параметром debug переданных node. Это было бесполезно. Начиная с версии Nodejs 6.3.0, поддерживается отладка, используя отладчик Chrome DevTools. Более подробно об этом можно прочитать в блоге Пола Айриша [4].
Теперь, когда вы запускаете команду Nodejs Debug (+ arguments) текущий файл будет запущен с параметром --inspect=localhost:60123 --debug-brk для 6-ой версии Nodejs и с параметром --inspect-brk=localhost:60123 для 8 версии. Как вы можете заметить отладчик запускается на порту 60123 не конфликтующим с портом по умолчанию — 9229.
Далее, вы можете подключиться в отладчику, используя шаги выводимые плагином:
Debugger is successfully started at localhost:60123.
1. Now you can open Google Chrome and navigate to chrome://inspect.
2. Then click Open dedicated DevTools for Node.
3. After click Add connection and add connection to localhost:60123
Автор: houk
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/269746
Ссылки в тексте:
[1] Nodejs: https://packagecontrol.io/packages/Nodejs
[2] packagecontrol.io: https://packagecontrol.io
[3] Randy3k: https://github.com/randy3k/UnitTesting
[4] Пола Айриша: https://medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27
[5] sublime-pexpect: https://github.com/varp/sublime-pexpect
[6] packagecontrol.io: http://http:s//packagecontrol.io
[7] sublime-psutil: https://github.com/varp/sublime-psutil
[8] Источник: https://habrahabr.ru/post/343750/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.