如何正确debugging节点检查器node.js?
我有一个在node.js中构build的应用程序,我使用节点检查器来debugging。 但是这很难:
- 重新启动服务器后,我的断点永远不会保存
- 我不能在尚未加载的文件上放置断点; 所以我必须从第一个脚本走到我想要的脚本; 真的很疼!
你怎么真的用节点检查器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
编辑:
没人能回答这个问题吗? :■
在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)在浏览器本地存储器中保存断点并自动恢复。
尝试使用IntelliJ WebStorm – 有一个免费的试用版,许可证并不昂贵。 它允许您在启动自己的内部节点进程之前,在所有文件中保存断点,并在整个进程重新启动时记住它们。
我同意 – 节点检查器看起来很好,但是没用,除非你的应用程序有一个明确的地方,在你的源文件加载之后,但是在你想要debugging的区域之前,在顶层脚本中设置一个断点。 你可以用这种方式来构build你自己的代码,但是你不会对其他有用的库有那么幸运。 另外…为什么要一个debugging工具决定你的项目结构!
忘记断点是非常没有帮助的……我的大部分debugging运行都需要一个以上的演练,因为在其他人的代码中,很容易跨越你想要的位置。
您可以使用节点代码进行检查。 它不会执行运行时间断点,但应该可以简化检查过程。
另外值得注意的是,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