我希望能够将debugger
语句(或类似的东西)直接放入我的代码中,并在运行测试时获得REPL,以便我可以与我的代码交互以调试内容。
我知道 Node(通过 V8)支持开箱即用的 debugger
语句,但您必须使用某些标志运行代码(通过 node debug
或 node --debug
或 node --debug-brk
- 我真的不明白其中的区别)。
Mocha 也有这些相同的标志,当我运行mocha debug
时,我确实在我的终端中收到调试器提示:
< Debugger listening on port 5858
connecting to port 5858... ok
break in node_modules/mocha/bin/_mocha:5
3 */
4
> 5 var program = require('commander')
6 , path = require('path')
7 , fs = require('fs')
debug>
但是断点在 Mocha 的代码中,而不是我的断点。这篇博文说你应该键入run
然后continue
到达断点,但是当我输入run
时,它会告诉我"应用已经在运行..."当我输入continue
时,它会告诉我"语法错误:非法继续语句"。
它说"侦听端口 5858"——我是否需要从某个地方(如浏览器或其他终端会话)打开与该端口的单独连接?
我已经看到了一些关于node-inspector
的事情,但我喜欢尽可能多地呆在终端上,所以我更喜欢一种无需打开浏览器即可做到这一点的方法。
我是 JS 的新手,所以请 ELI5 :)
另外,如果相关,我实际上是在使用io.js,而不是Node本身
当节点/iojs 调试器首次启动并连接时,它总是在传递到解释器的任何脚本的第一行中断。
由于你已在运行应用,因此无需在此处键入 run,但只需键入 c
即可继续执行,直到断点成为断点。
如果程序在您处于调试器中时终止,run
很有用 - 您可以再次启动它! (您也可以执行restart
以在调试器中重新启动程序)。