如何正确debugging节点检查器node.js?

我有一个在node.js中构build的应用程序,我使用节点检查器来debugging。 但是这很难:

  1. 重新启动服务器后,我的断点永远不会保存
  2. 我不能在尚未加载的文件上放置断点; 所以我必须从第一个脚本走到我想要的脚本; 真的很疼!

你怎么真的用节点检查器debuggingnode.js?

关于如何使用node.js的video很容易让人误解,因为一切都进入了一个模块。
http://www.youtube.com/watch?v=AOnK3NVnxL8

或者这个脚本出现的脚本已经加载到第一个脚本中了
http://www.youtube.com/watch?v=HJOH0-g8f6E&feature=mfu_in_order&list=UL

编辑:

没人能回答这个问题吗? :■

       

网上收集的解决方案 "如何正确debugging节点检查器node.js?"

在JavaScript中,您可以使用debugger;设置断点debugger; 声明。 但是,如果debugging器实际连接,它们只会暂停节点。

所以使用启动你的节点脚本

 node --debug-brk myfile.js 

然后启动节点检查器并按下播放button继续下一个断点,它会打你的debugger; 断点(至less这对我有用)

(如注释中所述:在最近版本的节点中,您不再需要单独安装节点检查器。如果使用node --debug-brk --inspect myfile.js启动节点,则会获得一个URL,用于启动您的debugging器浏览器)。

重新启动后仍然需要一次额外的点击,但是至less可以保存您的断点。

如果你的断点没有被自动命中,但是只有在某些用户操作之后,你才不需要--debug-brk

客户端断点的问题是当文件改变时很难跟踪断点的位置。 与编辑器不同的是,它不能跟踪线路的变化等。

@RyanOlds使用debugging器的build议; 语句也是一个很好的语句,但是在评估语句之前必须确保debugging器已经连接,否则将被忽略。 从–debug-brk开始是一个强制执行的好办法,因为第一行的执行暂停,允许你附加debugging器,然后继续执行。

您可以尝试使用节点的内部debugging器进行debugging 。

编辑:但是,根据v8 DebuggerProtocol ,可以在尚未加载的脚本上设置断点,也可以通过函数,脚本等设置断点。 因此,节点检查员应该能够跟踪你的断点(在一个会话中,或其他)。 但是,现在不这样做。

也许如果v8允许某段代码触发一个断点,类似于节点debugging器 ? 编辑:它,你应该能够通过抛出任何旧的exception(捕捉或未捕捉)触发一个中断。

节点检查器的新版本(0.3.x)在浏览器本地存储器中保存断点并自动恢复。

https://github.com/node-inspector/node-inspector/pull/116

尝试使用IntelliJ WebStorm – 有一个免费的试用版,许可证并不昂贵。 它允许您在启动自己的内部节点进程之前,在所有文件中保存断点,并在整个进程重新启动时记住它们。

我同意 – 节点检查器看起来很好,但是没用,除非你的应用程序有一个明确的地方,在你的源文件加载之后,但是在你想要debugging的区域之前,在顶层脚本中设置一个断点。 你可以用这种方式来构build你自己的代码,但是你不会对其他有用的库有那么幸运。 另外…为什么要一个debugging工具决定你的项目结构!

忘记断点是非常没有帮助的……我的大部分debugging运行都需要一个以上的演练,因为在其他人的代码中,很容易跨越你想要的位置。

您可以使用节点代码进行检查。 它不会执行运行时间断点,但应该可以简化检查过程。

https://github.com/ketamynx/node-codein/

另外值得注意的是,vscode对于节点有一个很好的debugging器。

https://code.visualstudio.com/

适用于Mac,Linux和Windows。

它执行运行时断点(不需要编写debugging器;语句),支持variables表,甚至有一个调用堆栈窗口(非常好)。

一切都是如此自动化,现在我使用nodejs(和我爱崇高)转到崇高的文字。

这是现在build立, 包括保存断点 。 我只是在节点7.3.0中testing它。

node --inspect --debug-brk app.js

这将打印一个像这样的url

To start debugging, open the following URL in Chrome: chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/c3d5d93e-9d27-41b9-a4da-607e43c9d4f8

把它放在Chrome中,你很好。

如果您想跳过复制/粘贴url,请执行以下操作:

npm install -g inspect-process inspect --debug-brk app.js

不幸的是, inspect-process方法不保留断点:-(。

这是我制作的video: https : //youtu.be/rtZKUnks6jI