node.js – Visual Studio代码 – 调试生成的进程

项目设置是一个基本的快速应用程序,使用快速生成器生成.

该项目vscode-debugging-node可在GitHub上获得

请参阅Visual studio Code – Debugging node application 的截屏视频

项目根目录中的Gruntfile.js管理开发过程. Gruntfile.js的目的很简单,它启动服务器并监视任何文件更改.
在检测到所需文件中的更改时,它会重新启动服务器(终止现有进程并启动新进程).

Gruntfile.js使用./task/server.js启动/重新启动服务器.

Gruntfile.js以这种方式开发,稍后,它将结合cookie管理,以提供登录体验.

执行$grunt启动任务时,如果传递了名为NODE_INSPECTOR = *的env变量,则服务器将在--debug mode中启动.
当在–debug模式下执行grunt任务时,以及并行运行的node-inspector,我可以使用Chrome来调试整个应用程序.

参考Debugging in Visual Studio Code,我尝试通过更新.settings/launch.json,使用“program”:“/usr/local/bin / grunt”,“args”:[“start”]和“env”来实现相同目的:{“NODE_INSPECTOR” : “*”}.

我发现调试器只连接到./task/server.js,但在整个应用程序中.我怀疑,这可能是由于spawned server.

这可以在visual studio代码中调试这种情况吗?如果是的话,了解细节将会非常有帮助.

最佳答案
您的疑问是正确的,您正在配置Visual Studio代码以附加到启动服务器的grunt任务,而不是服务器本身.

您有两个选项可以调试它:

>从终端执行NODE_INSPECTOR = * grunt start.
服务器启动后,使用launch.json中提供的相同Attach配置将正在运行的服务器连接到调试器.在Debugger视图中,从配置文件下拉列表中选择Attach,然后启动Debugger(绿色►播放按钮).

更新 –
Sarbbotam录制了一个截屏视频,用于成功连接到他的node.js应用程序,你可以在这里找到Visual studio Code – Attaching a Node App to Debugger

>配置VSCode直接运行服务器,因为您不会让grunt任务监听更改并重新启动服务器.为了做到这一点,将程序选项更改为“bin / www”

转载注明原文:node.js – Visual Studio代码 – 调试生成的进程 - 代码日志