该项目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,但在整个应用程序中.我怀疑,这可能是由于spawn
ed 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”