项目设置是一个基本的快速应用程序,使用快速生成器生成。
项目,vscode-debugging-node可在GitHub上找到
请参阅Visual studio Code - Debugging node application
的截屏视频项目根目录中的Gruntfile.js
管理开发过程。 Gruntfile.js
的目的很简单,它启动服务器并监视任何文件更改。
在检测到所需文件中的更改时,它会重新启动服务器(终止现有进程并启动新进程)。
Gruntfile.js
使用./task/server.js
启动/重新启动服务器。
Gruntfile.js
是以这种方式开发的,稍后,它将包含cookie管理,以便提供登录体验。
执行$ grunt start
任务时,如果传递了名为env
的{{1}}变量,则服务器将在--debug
mode中启动。
当以NODE_INSPECTOR=*
模式执行grunt任务时,以及并行运行的--debug
,我可以使用Chrome来调试整个应用程序。
参考Debugging in Visual Studio Code,我尝试通过更新.settings/launch.json
,node-inspector
,"program": "/usr/local/bin/grunt"
和"args": ["start"]
来实现同样目标。
我可以发现调试器只连接到"env": {"NODE_INSPECTOR":"*"}
,但在整个应用程序中。我怀疑,这可能是由于spawn
ed server。
这可以在 visual studio code 中调试这种情况吗?如果是的话,了解详细信息将会非常有帮助。
答案 0 :(得分:3)
您的怀疑是正确的,您正在配置Visual Studio代码以附加到启动服务器的grunt任务,而不是服务器本身。
您有两个选项可以调试它:
NODE_INSPECTOR=* grunt start
。
服务器启动后,使用launch.json
中提供的相同附加配置将正在运行的服务器连接到调试器。在调试器视图中,从配置文件下拉列表中选择附加,然后启动调试器(绿色►播放按钮)。 更新 - Sarbbotam录制了一个截屏视频,用于成功附加到他的node.js应用,你可以在这里找到Visual studio Code - Attaching a Node App to Debugger
program
选项更改为"bin/www"