我正在使用gulp-jslint-simple插件来保存jslint我的javascript,这可以正常使用以下代码:
gulp.task('lint', function() {
gulp.src(paths.js)
.pipe(jslint.run({
node: true,
vars: true
}))
.pipe(jslint.report({
reporter: require(stylish).reporter
}));
});
这基本上将jslint应用于我的javascript目录中称为paths.js
的所有文件夹。
我使用以下监听方法来监听正在保存的javascript文件:
gulp.task('watch', function() {
gulp.watch(paths.js, ['lint']);
gulp.watch(paths.js, ['js']);
});
我有另一个上面指定的监视方法,它在同一个文件中对javascript进行连接和缩小,但是如果jslinting没有返回错误,我只希望这个运行,这可能吗?
我尝试添加.on('error', errorHandler)
方法,但这只会出错,因为我想要成功方法。我也调查了.on('end', ..)
但是这似乎有多次被击中。
所以简而言之,我希望能够在gulp中做到以下几点:
if (gulp.watch(paths.js, ['lint'])) {
//somehow call this..
gulp.watch(paths.js, ['js']);
});
答案 0 :(得分:0)
当使用lint
选项存在lint错误时,您可以使emitError
任务失败,然后您可以使js
任务取决于lint
任务:
gulp.task('lint', function() {
return gulp.src(paths.js)
.pipe(jslint.run({
node: true,
vars: true
}))
.pipe(jslint.report({
reporter: require(stylish).reporter,
emitError: true
}));
});
gulp.task('js', ['lint'], function() {
//js stuff
});
gulp.task('watch', function() {
gulp.watch(paths.js, ['js']);
});