无法使用VSCode调试器找到Node进程

4

我正在测试VS Code的Node调试器,但是在尝试附加到运行中的进程时找不到任何Node进程。

这是我的launch.json文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "attach",
            "name": "Attach by Process ID",
            "processId": "${command:PickProcess}"
        }
    ]
}

我 package.json 文件的内容:

  "scripts": {
    "start": "node --inspect=0.0.0.0:9229 ./bin/www"
  }

在我使用“npm start”启动进程后,我点击“开始调试”,然后节点进程列表如下:
  • 1 sssd_pam
  • 1 sssd_nss
  • 1 sssd_be
看起来像这样,没有一个是我刚刚启动的服务器。 即使在关闭节点服务器后,此列表仍会持续存在。
为什么我无法在VSCode进程附加中看到任何正在运行的节点进程?
附注:我正在密切关注这个使用VS Code调试Node.js的教程。

请在您的 package.json 文件中发布脚本,以便我们提供帮助。也许 NPM 启动脚本存在问题。 - Luís Brito
1
编辑了帖子以包含此内容。 - Michael
1
在npm脚本中添加--inspect=0.0.0.0:9229后,现在它可以工作了。谢谢! - Michael
很高兴我能帮到你! - Luís Brito
1个回答

4
你是否在npm start中以调试模式运行NodeJS?你需要使用--inspect标志。如果没有这个标志,NodeJS解释器将不会打开调试端口以供VSCode附加。
参考:https://nodejs.org/en/docs/guides/debugging-getting-started/ 另一个选项是使用端口定义进行附加。我通常在launch.json文件中这样做:
{
  "type": "node",
  "request": "attach",
  "name": "Attach",
  "port": 9229,
  "restart": true,
  "sourceMaps": true,
  "protocol": "inspector"
}

然后我使用以下命令启动NodeJS进程:node --inspect=0.0.0.0:9229 start.js


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接