Как отлаживать модульное приложение node.js, в котором файлы включены как модули

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

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

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

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

Я запускаю все свои приложения из док-контейнеров, поэтому в качестве адреса я использую 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. Как это может быть сделано?

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

2 ответа

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

Если вы установите точку останова чуть ниже операторов require() для интересующих модулей и запустите программу до этой точки останова, вы сможете увидеть эти файлы в разделе LOADED SCRIPTS и установить точки останова в них так же, как вы бы индексировали.js

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

введите описание изображения здесь

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

Другие вопросы по тегам