Javascript 如何使用Windows 7节点检查器调试带有断点的GrunFile?
所以在过去的几天里,我一直在努力让这一切顺利进行。我发现的大多数解决方案对于调试节点应用程序来说似乎“正常”。但我没有太多的运气单独调试grunt。我希望能够在GrunFile中设置断点,并使用浏览器或IDE逐步完成代码 我尝试了以下方法:Javascript 如何使用Windows 7节点检查器调试带有断点的GrunFile?,javascript,node.js,debugging,gruntjs,windows-7-x64,Javascript,Node.js,Debugging,Gruntjs,Windows 7 X64,所以在过去的几天里,我一直在努力让这一切顺利进行。我发现的大多数解决方案对于调试节点应用程序来说似乎“正常”。但我没有太多的运气单独调试grunt。我希望能够在GrunFile中设置断点,并使用浏览器或IDE逐步完成代码 我尝试了以下方法: (流程结束,退出代码为6) (这种方法可以正常工作,但没有达到eclipse中设置的断点,不是很直观) (这一个也可以用。我可以在chrome中使用F11和F10来逐步解决一些问题。但最终它只是崩溃了。使用F8跳到断点永远不起作用。) 使用NODE-IN
- (流程结束,退出代码为6)
- (这种方法可以正常工作,但没有达到eclipse中设置的断点,不是很直观)
- (这一个也可以用。我可以在chrome中使用F11和F10来逐步解决一些问题。但最终它只是崩溃了。使用F8跳到断点永远不起作用。)
grunt node-inspector
node --debug-brk Gruntfile.js
然后从那里我转到localhost:8080/debug?port=5858
调试我的Grunfile.js。但就像我上面提到的,只要我按F8键跳到断点,它就会因为上面的错误而崩溃。是否有人成功地使用此方法调试GrunFile?到目前为止,从我的搜索努力,我还没有找到一个非常好的记录方式这样做。因此,希望这将是有用的或有益的信息,为未来的用户。顺便说一下,我正在使用Windows 7。提前谢谢
更新:
我尝试了@dylants提出的以下建议,但迄今为止运气不佳
C:\Users\khollenbeck\AppData\Roaming\npm
的windows计算机上找到grunt.cmd文件。打开grunt.cmd
文件并找到以下内容
C:\Users\khollenbeck\AppData\Roaming\npm\node\u modules\grunt cli\bin
,其中包含一个名为grunt
的文件。然后在文件的顶部。我更改了这个代码/usr/bin/env节点到#/usr/bin/env节点——调试brk
节点检查器C:\path\to\gruntfile grunt
我得到了以下信息
节点检查器v0.7.3
参观http://localhost:8080/debug?port=5858 开始调试
grunt
命令。(使服务器在原始命令提示符下运行)啊,我明白我做错了什么。出于某种原因,我做了节点调试 不添加路径 C:\Users\khollenbeck\AppData\Roaming\npm\node\u modules\grunt cli\bin\grunt。 现在可以用了,非常感谢。我很抱歉把这件事拖了这么久 这么久。但希望这对其他windows用户有帮助 未来
这可以通过启动
节点检查器
并在调试模式下启动grunt
来实现。完成后,您可以像往常一样在Chrome中单步浏览Gruntfile.js
启动节点检查器
如果您还没有节点检查器
,请使用npm安装-g节点检查器
安装它。然后在一个终端/命令提示符下启动:
$ node-inspector
Node Inspector v0.7.3
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.
在调试模式下运行grunt
接下来,找到您的grunt
脚本。这是从命令行运行grunt
命令时执行的JavaScript文件。如果全局安装grunt(使用npm安装-g grunt cli
),则它很可能位于*nix或Mac计算机的/usr/bin
或/usr/local/bin
中。对于Windows计算机,grunt.cmd
文件指向grunt
脚本所在的位置。grunt
脚本很可能位于C:\Users\\AppData\Roaming\npm\node\u modules\grunt cli\bin
中
找到脚本的位置后,使用节点--debug brk
执行该脚本,从而在调试模式下启动grunt,在文件的第一行代码上中断。例如,假设grunt脚本位于/usr/bin/grunt
:
$ node --debug-brk /usr/bin/grunt
debugger listening on port 5858
当您看到调试器监听端口5858
作为输出时,就知道您成功了,这意味着grunt脚本已停止执行,并等待调试器逐步执行
用Chrome调试
现在打开Chrome并将其指向
http://127.0.0.1:8080/debug?port=5858
。在Chrome中,在grunfile.js中打开并添加断点,然后像平常一样逐步执行。要启动节点检查器,您不应再传递--debug或--debug brk标志。您可以使用节点检查器
和文件路径直接启动它,就像您通常使用节点
命令启动执行脚本一样。这将在chrome中自动打开webkit inspector,并在执行的第一行暂停。您可以从此处插入断点并按正常方式进行调试
如上所述,要调试grunt任务,您必须使用Mac中的$which grunt
查找grunt可执行文件,但不确定Windows。然后必须复制该路径,并将其用作传递给node debug的第一个参数,第二个参数是任务(如果需要,还可以包括grunt目标)。例如,它可能看起来像:
节点调试/usr/local/bin/grunt-concat:dev
从这里,您可以调试将为concat任务执行的任何文件。这包括grunt concat的依赖项,这些依赖项将在
node --inspect %APPDATA%\npm\node_modules\grunt-cli\bin\grunt