【发布时间】:2015-05-06 18:08:23
【问题描述】:
项目设置,是一个基本的 express 应用程序,使用 express-generator 生成。
项目vscode-debugging-node 可在 GitHub 上获得
请参阅Visual studio Code - Debugging node application 的截屏视频
项目根目录下的Gruntfile.js 管理开发过程。 Gruntfile.js 的目的很简单,它启动服务器并监视任何文件更改。
在检测到所需文件的更改时,它会重新启动服务器(终止现有进程并启动一个新进程)。
Gruntfile.js 使用./task/server.js 来启动/重启服务器。
Gruntfile.js 就是以这种方式开发的,稍后它将结合 cookie 管理,以提供登录体验。
在执行$ grunt start任务时,如果传递了名为NODE_INSPECTOR=*的env变量,则在--debug mode中启动服务器。
当 grunt 任务在--debug 模式下执行,同时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 代码 中调试这种情况吗?如果是的话,了解细节会有很大帮助。
【问题讨论】:
标签: node.js debugging spawn visual-studio-code