Visual Studio代码 - 调试生成的进程

时间:2015-05-06 18:08:23

标签: node.js debugging spawn visual-studio-code

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

项目,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.jsonnode-inspector"program": "/usr/local/bin/grunt""args": ["start"]来实现同样目标。

我可以发现调试器只连接到"env": {"NODE_INSPECTOR":"*"},但在整个应用程序中。我怀疑,这可能是由于spawned server

这可以在 visual studio code 中调试这种情况吗?如果是的话,了解详细信息将会非常有帮助。

1 个答案:

答案 0 :(得分:3)

您的怀疑是正确的,您正在配置Visual Studio代码以附加到启动服务器的grunt任务,而不是服务器本身。

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

  1. 从终端执行NODE_INSPECTOR=* grunt start。 服务器启动后,使用launch.json中提供的相同附加配置将正在运行的服务器连接到调试器。在调试器视图中,从配置文件下拉列表中选择附加,然后启动调试器(绿色►播放按钮)。
  2. 更新 - Sarbbotam录制了一个截屏视频,用于成功附加到他的node.js应用,你可以在这里找到Visual studio Code - Attaching a Node App to Debugger

    1. 配置VSCode以直接运行服务器,因为您不会让grunt任务监听更改并重新启动服务器。为此,请将program选项更改为"bin/www"