无法使用 Chrome DevTools 调试 node.js

Posted

技术标签:

【中文标题】无法使用 Chrome DevTools 调试 node.js【英文标题】:Can't debug node.js using Chrome DevTools 【发布时间】:2019-08-14 08:35:19 【问题描述】:

当我运行node --inspect app.js 时,它显示“已连接调试器”。然后我打开 chrome://inspect,我看到我的应用程序在那里运行,所以我单击 Open dedicated DevTools 或 Inspect(在应用程序名称旁边)。不过,无论我如何打开 Node DevTools,它似乎都没有连接到任何东西(我在那里看不到源代码,调试器语句被忽略,没有任何日志记录到控制台等)。我还尝试通过打开常规 DevTools 并单击绿色节点图标来打开它。

这很奇怪,因为 Chrome 清楚地看到服务器正在运行,并且某些东西明显连接到 Node(而且我认为我的网络上没有其他任何东西可以做到这一点)但我仍然无法让 DevTools 甚至承认服务器的存在。

我还清楚地记得几周前以完全相同的方式调试了一些东西,当时一切正常(虽然我记得我也曾为此苦苦挣扎,但我最终还是让它工作了,我想附上名字将文件放在命令末尾而不是将其放在中间完成了最后的技巧)。从那以后唯一发生的事情是我从 v8 更新到 v10 (LTS)

我显然已经尝试过重新启动,并且还阅读了关于节点 --inspect 的所有手册和文章,但没有任何帮助。

【问题讨论】:

也许这可以帮助你@M。法尼克medium.com/the-node-js-collection/… 我已经读过它,并且完全按照它说的做了,没有帮助 @M.Farnik 你有没有想过这个问题?我有同样的问题 - 使用远程调试器/ssh 隧道,我在 chrome://inspect 页面上看到了我需要的远程目标,但是一旦我单击 DevTools 链接,我就看不到任何源,我无法访问“内存”选项卡中的 javascript VM 实例。 【参考方案1】:

Chrome 版本:92

对我来说,问题是 Chrome DevTools 没有寻找我的 Node.js 进程正在使用的连接端口。

我做了以下事情:

    使用--inspect 标志启动节点进程。它在端口9239 上启动了进程。 在 Chrome 地址栏中输入 chrome://inspect/#devices。 在设备页面点击“Open dedicated DevTools for Node”。 它会打开“DevTools-Node.js”窗口。 点击“连接”标签。 点击“添加连接”按钮。 在文本框中输入localhost:9239,然后点击“添加”。

添加正确的端口后,DevTools 连接到 Node.js 进程并且我能够对其进行调试。

【讨论】:

【参考方案2】:

使用命令代替节点 --inspect:-

节点 --inspect-brk

【讨论】:

【参考方案3】:

我遇到了同样的问题,我已经解决了

1) 将 chrome 更新到最新版本并重新启动

2) 重启节点--inspect server.js

3) 注意端口号,如下所示 port number

4) 打开 chrome://inspect 并添加 localhost: 步骤 3 中记录的端口号 update connection in chrome

【讨论】:

【参考方案4】:

似乎是一个新的 chrome 问题:https://github.com/nodejs/node/issues/26887

【讨论】:

以上是关于无法使用 Chrome DevTools 调试 node.js的主要内容,如果未能解决你的问题,请参考以下文章

chrome浏览器的VUE调试插件Vue.js devtools

Chrome DevTools 错误:“无法保存到临时变量。”

使用 ChromeDriver 和 Chrome DevTools 协议进行多客户端远程调试

使用 Chrome Devtools 调试 CSS 动画

在远程调试窗口调整 Chrome DevTools 的停靠位置

如何用 Chrome DevTools 调试 iOS Safari