在Grunt任务中使用节点检查器
有人使用Grunt的 节点检查器进行应用程序debugging吗? 如果不是,你能推荐一个基于Grunt的应用程序的debugging工具吗?
我正在与服务器端应用程序的nodejs ,我有Grunt使用分离任务(这是因为用户可以执行任务分开)。
提前致谢
要在debugging中运行grunt,你需要明确地将grunt脚本传递给节点:
node-debug $(which grunt) task
并放置一个debugger;
在你的任务线。 然后node-inspector
将打开一个带有debugging工具的浏览器。
编辑2014年2月28日
node-inspector
添加了命令node-debug
,该命令启动处于--debug
状态的节点,并打开浏览器到node-inspector
页面,当它遇到第一个debugger
行或设置断点时停止。
编辑2015年1月30日
在Windows上,事情是一个更复杂的触摸。 有关说明,请参阅@ suchluhotorenko的答案。
Windows解决scheme
跑
node --debug-brk c:\Users\username\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt taskname
从你的Gruntfile.js
目录中的cmd。 不要忘记把debugger;
在必要的地方行。
为了debugging,我们必须修改bin下的grunt文件。 在我的机器上,grunt是全局安装的,所以我去了/ usr / local / lib / node_modules / grunt / bin我打开文件并修改:
#!/usr/bin/env node
至
#!/usr/bin/env node --debug-brk
–debug-brk将在JavaScript的第一行中运行。
尽pipe如此,这还不够,因为在节点检查器的下拉列表中找不到任何js文件,因此您必须通过添加debugger;
来修改您感兴趣的文件debugger;
你想在哪里断点发生。 现在你可以在第一次rest之后点击继续,然后你就可以debugger;
你了debugger;
线
相当不错,但这是迄今为止我发现的唯一方法。
我最近创build了grunt-node-inspector来轻松configurationnode-inspector和其余的grunt工作stream,检查一下: https : //github.com/ChrisWren/grunt-node-inspector
下面是Gruntfile的一部分,它演示了如何使用grunt-node-inspector,grunt-concurrent和grunt-shell来debugginggrunt任务: https : //github.com/CabinJS/Cabin/blob/master/Gruntfile。 JS#L44-L77
我做了一个任务来运行我的应用程序并启动节点检查器。 这比现在的命题好得多,你只需要在gruntfile中添加这个任务:
grunt.registerTask('debug', 'My debug task.', function() { var done = this.async(); grunt.util.spawn({ cmd: 'node', args: ['--debug', 'app.js'], opts: { //cwd: current workin directory } }, function (error, result, code) { if (error) { grunt.log.write (result); grunt.fail.fatal(error); } done(); }); grunt.log.writeln ('node started'); grunt.util.spawn({ cmd: 'node-inspector', args: ['&'], opts: { //cwd: current workin directory } }, function (error, result, code) { if (error) { grunt.log.write (result); grunt.fail.fatal(error); } done(); }); grunt.log.writeln ('inspector started'); });
这里很好的答案。 在2017年,现在你可以做
node --inspect --debug-brk $(which grunt) taskName
打印类似的东西。
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/232652c3-f63c-4b00-8de9-17dfad5db471
在Chrome中打开该URL,你很好走!
我正在使用节点7.3.0,我在Mac上。 您可能需要遵循其他post中的一些build议才能在Windows上进行。