Как отлаживать модульное приложение node.js, в котором файлы включены как модули - PullRequest
0 голосов
/ 12 февраля 2019

Большинство моих приложений для node.js написаны модульно с использованием require(), так что большинство реальных программ выполняется вне файла index.js.

Я обнаружил, что при использовании node --inspect=0.0.0.0 index.js я могу устанавливать только точки останова и оценивать программу, когда она запускается в index.js.

Как настроить отладчик node.js (или любой другой метод) таким образом, чтобы я мог просматривать определенные модули, которые принадлежат моему приложению, в отладчике?

Также я использую код Visual Studioдля отладки.

Я запускаю все свои приложения из Docker-контейнеров, поэтому я использую 0.0.0.0 в качестве адреса.

Я пробовал:

    node --inspect=0.0.0.0 index.js 

, который подключается к отладчику, но видит только index.js

, а также:

    node index.js --inspect src/core/my_module.js 

, который выполняетдаже не запускаю отладчик

Затем я подключаюсь к отладчику с помощью кода Visual Studio и могу устанавливать точки останова в index.js.Однако я не могу увидеть или установить точки останова ни в одном из моих файлов модулей, которые есть в index.js, например const my_module = require('my_module')

. Я ожидаю, что есть какой-то способ отладки полностью модульного приложения с помощью node.js.и Visual Studio Code.Как это можно сделать?

-Спасибо за ваше время

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

В VSC в левой колонке отладки есть вкладка с надписью LOADED SCRIPTS.

Если вы установите точку останова чуть ниже операторов require () для интересующих модулей и запустите программу до этой точки останова, вы сможете увидеть эти файлы в разделе ЗАГРУЖЕННЫЕ СКРИПТЫ и установить точки останова внутри них.так же, как вы бы index.js

0 голосов
/ 12 февраля 2019

Я не уверен, как это можно сделать в коде Visual Studio, но когда я отлаживаю свой скрипт в инструментах разработчика Chrome с помощью node --inspect-brk test.js и выполнение останавливается в первой строке, я могу нажать «Добавить папку вКнопка «Рабочее пространство» для включения папок модуля в дерево файлов, открытия модуля, установки точки останова и продолжения выполнения:

enter image description here

Может быть, есть что-то подобное в коде VS?

...