我正在使用gulp来运行开发人员Web服务器,并且我希望在javascript文件发生更改时发生以下任务:
我在其他示例中看到使用jshint.reporter(' fail'),如下面的代码所示,停止管道的其余部分。
var jshint = require('gulp-jshint'),
watch = require('gulp-watch');
watch('resources/js/src/**/*.js', function() {
util.log('Changes to js source files detected');
}).pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(jshint.reporter('fail'))
.pipe(gulp.dest('.tmp/js/src/'))
.pipe(connect.reload());
然而,当我这样做时,无论棉绒是否成功,它似乎总是停止。那么,如何在掉毛失败后结束管道?
答案 0 :(得分:0)
不确定这是否是最佳解决方案,但确实有效:
var map = require('map-stream');
...
var copyAndReload = map(function (file, cb) {
if (file.jshint.success) {
gulp.src('resources/js/src/**/*.js')
.pipe(gulp.dest('.tmp/js/src/'))
.pipe(connect.reload());
}
});
watch('resources/js/src/**/*.js', function() {
util.log('Changes to js source files detected');
}).pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(copyAndReload);
答案 1 :(得分:0)
您可以执行的操作是插件plumber
以便在出现错误时退出
所以在管道工程中管道管道工
.pipe(plumber(_doExit))
这是你如何定义_doExit
function _doExit() {
process.exit(1);
}