如何使用gulp-jslint-simple执行成功事件

时间:2015-02-02 17:14:02

标签: javascript gulp jslint gulp-watch

我正在使用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']);
});

1 个答案:

答案 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']);
});