2017-04-08 71 views
0

我已经继承了运行gulp + nodejs的项目。我试图在Windows中使用IntelliJ作为我的IDE。在IntelliJ中使用gulp代替nodejs忽略断点

如果我将运行时配置设置为使用“node.js”作为它的类型,那么我在打断点和调试时没有问题。但是,如果我使用“gulp.js”作为运行类型,断点将被忽略(并且我基本上不会调试)。我也尝试使用Node.js配置,并将JS文件设置为node_modules/gulp/bin/gulp.js而不是server/run.js。这似乎有完全相同的问题。

有关如何解决此问题的任何想法?

+0

你可能已经做到了,但你遵循的IntelliJ提供的政党成员想法? https://blog.jetbrains.com/webstorm/2014/11/gulp-in-webstorm-9/ – jy95

+0

我没有,但我只是全力以赴,以确保我没有错过任何东西,而且我没有任何东西已经完成了。所以回到原点: - \ – Dakusan

回答

1

Gulp运行配置不应该用于Node应用程序调试 - 它被设计为运行/调试Gulp任务。要调试您的Node.js应用程序,您需要创建一个Node.js Run配置并将Gulp build生成的.js文件指定为要调试的文件。

如果您仍然倾向于使用Gulp来启动服务器,请确保它以-debug-brk开头,然后使用Node.js Remote运行配置来附加调试器。

像:

var gulp = require('gulp'); 
var exec = require('child_process').exec; 

gulp.task('server', function (cb) { 
    exec('node --debug-brk=5858 app.js', function (err, stdout, stderr) { 
... 

运行server任务,然后创建Node.js Remote运行配置,并创下调试

enter image description here

+0

感谢您的回答,我认为这正是我所期待的。对不起,在这上面花了这么长时间,我一直淹没到今天。所以你建议我运行nodejs。这意味着我必须重新启动服务器,只要我改变服务器端代码,对吧?我在印象之下吞下了所以我不必在代码更改时重新启动服务器?还是我不正确? – Dakusan

+1

Gulp本身并没有做任何事情来重启你的服务器/热交换的改变,所以我不确定你的印象是基于什么......当使用Node.js时,你可以使用Live Edit来获得热切换而无需服务器重启(如果可能的话)或者让服务器自动重新启动。请参阅https://blog.jetbrains.com/webstorm/2014/08/live-edit-updates-in-webstorm-9/。 确保在首选项|中设置'更新'构建,执行,部署|调试器|现场编辑为'自动进入(ms)'并启用'重启如果热插拔失败' – lena

+0

真棒,感谢您的帮助! – Dakusan