如何使用Gulp调试应用启动

时间:2016-07-18 13:55:54

标签: node.js gulp node-inspector gulp-node-inspector

我遇到了一个路障,我正在使用一个支持节点应用程序的新团队。该应用程序是通过Gulp启动的,设置是这样的,有一个“核心”NPM模块,定义了一堆gulp任务和一个“服务器”,我们的应用程序只是安装这个包,我们的代码被复制为“插件“到服务器。

在我们的gulpfile.js中,我们有类似的内容:

var gulp = require('gulp');
var workflow = require('base-workflow');

workflow.use({ gulp: gulp });
gulp.task('default'), ['base:default']);
...more stuff

其中引入base:default并最终启动了几个Hapi服务器(一个作为“web”应用程序,一个作为基于Java的真实REST服务的“rest”代理应用程序)。我想要做的是设置node-inpector,以便我可以解决应用程序的启动问题,因为我发现它们的基本软件包的最新版本不兼容Mac。

我尝试过安装gulp-node-inspector并进行以下更改:

var gulp = require('gulp');
var nodeInspector = require('gulp-node-inspector');
var workflow = require('base-workflow');

workflow.use({ gulp: gulp });
gulp.task('default'), ['base:default']);
gulp.task('debug', ['default'], function() { gulp.src([]).pipe(nodeInspector({debugBrk: true})); });
...more stuff

还有:

var gulp = require('gulp');
var nodeInspector = require('gulp-node-inspector');
var workflow = require('base-workflow');

workflow.use({ gulp: gulp });
gulp.task('default'), ['base:default']);
gulp.task('debug', function() { gulp.src(['default']).pipe(nodeInspector({debugBrk: true})); });
...more stuff

但这些都不起作用。部分原因很可能是我对Gulp缺乏了解。有谁知道如何调试这个应用程序?

3 个答案:

答案 0 :(得分:0)

我花了很多时间在Google上搜索各种解决方案;最后,对我有用的是本页面上接受的答案:

How to debug gulpfile.js

这是唯一允许我在我的gulp任务中实际执行“调试器”命令的命令。

我还应该注意,我必须完全卸载并重新安装“node-inspector”;有一个版本问题,当我即将解决它时,我得到一些“找不到模块”错误,因为node-inspector的版本导致它指向错误的文件夹。一旦我卸载并重新安装(通过npm),它就可以工作了。在我的情况下,我在Windows机器上,并且有效的命令如下所示:

node-debug C:\ myPathWhereGulpfileDotJsExists \ node_modules \ gulp \ bin \ gulp.js --gulpfile C:\ myPathWhereGulpfileDotJsExists \ gulpfile.js myTestTaskContainingDebuggerCommand

答案 1 :(得分:0)

Maby这个解决方案可以帮助您

node --inspect --debug-brk ./node_modules/gulp fonts

答案 2 :(得分:0)

现在执行此操作的最佳方法是将debugger;添加到要添加断点的文件中的位置,或者在调试器以setBreakpoint('gulpFile.js', 1) <启动后手动设置它/ p>

然后简单地

node inspect --inspect-brk $(which gulp) taskName
c 

有关使用节点here

进行调试的详细信息