如何调试模块化node.js应用程序,其中文件作为模块包含在内
我的大多数node.js应用程序都是使用require()
进行模块化编写的,因此大多数实际程序执行都发生在index.js
文件之外。
我发现当使用node --inspect=0.0.0.0 index.js
时,我只能设置断点并评估程序,因为它在index.js
中运行。
如何设置node.js调试器(或任何其他方法),以便我可以在调试器中查看属于我的应用程序的特定模块?
我也使用Visual Studio Code进行调试。
我从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调试完全模块化的应用程序。如何才能做到这一点?
-感谢您的时间
回答如下:在VSC中,左侧Debug列中有一个标签,显示LOADED SCRIPTS。
如果在感兴趣的模块的require()语句下面设置一个断点,并将程序运行到该断点,您将能够在LOADED SCRIPTS下看到这些文件并在其中设置断点,就像索引一样.js文件