node.js - Chrome Devtools 专用 Node.js 检查器不会在断点处停止

标签 node.js google-chrome-devtools

关于这个问题有几篇较早的帖子,但从 2013 年和 2014 年提出的问题来看,那里的答案对我的情况没有帮助。

我在文件的多个位置放置了 debugger 关键字,甚至在检查器 UI 中添加了手动断点。尽管如此,执行文件不会在任何断点处停止。我正在使用 Node 9.2.0 和 chrome 64.0.3282.167。

这是我的开发工具如何出现的图片。 enter image description here

最佳答案

改用--inspect-brk标志

我最终在 devtools protocol github page 上打开了一个问题.

我立即得到了答复。基本上,因为我使用 --inspect 标志来启动 Node.js 调试器,所以我的 JavaScript 在调试器进程连接到 DevTools 服务器之前被执行。因此,断点信息将传递得太晚,并且不会触发任何断点。

示例:node --inspect-brk myscript.js

他们目前正在尝试改进此用例。这是实际的回复:

We are working on better workflow here but for now --inspect-brk is only one way. With --inspect-brk node waits DevTools frontend connection. On connection DevTools send all breakpoints information and starts JavaScript execution in node. With --inspect node starts JavaScript execution without waiting for DevTools frontend. As soon as DevTools connected, we send the same breakpoint information to node but it can be too late since some JavaScript is already executed.

截至 2018 年 4 月 6 日,Node.js 文档对这一微妙之处还不是很清楚。我将在他们的 repo 上提交 PR 以更新文档。顺便说一句,如果你不知道的话,即使没有 V8 集成,内置的调试器也非常强大。在 docs 中探索调试实用程序的所有可能性.

关于node.js - Chrome Devtools 专用 Node.js 检查器不会在断点处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994836/

相关文章:

javascript - 在没有 index.js 的情况下更改 NPM 入口点

node.js - 如何使用从 OIDCStrategy 检索到的 accessToken 来遍历 Azure Graph API?

ios - 页面在 Safari 中呈现,但在 iPad 上的 Chrome 中不呈现

node.js - MongoDB:聚合,按多个字段分组

node.js - Socket.IO - 无法在 Google Chrome 中加载 XMLHttpRequest

ruby-on-rails-4 - 如何在 rails 4 中启用 Sass 的 Source Maps?

javascript - chrome 调试缺少脚本

google-chrome - 是否可以从 chrome 开发人员工具导出和导入自定义设备?

javascript - 使用 nodeJS 检查其他域的 SSL 证书

javascript - 控制台 (F12) 更正 "broken"HTML (innerHTML)