Linting在从gulp任务执行时通过,但它应该失败

时间:2017-11-29 16:24:31

标签: javascript gulp eslint

我正在使用此命令对我的JavaScript代码进行处理:

eslint src/**/*.js

这会发现数百个linting错误。

我正在尝试使用linting管道的一部分。因此,我为它做了一大笔任务。

const gulp = require('gulp');
const eslint = require('gulp-eslint');

gulp.task('lint', () => {
    gulp.src(['src/**/*.js'])
        .pipe(eslint())
        .pipe(eslint.format())
        .pipe(eslint.failAfterError());
});

但是,当我运行gulp lint时,它会通过:

Starting 'lint'...
Finished 'lint' after 35 ms

我不明白为什么会过去。我也试过这个:

gulp.task('lint', () => {
    gulp.src(['src/**/*.js'])
        .pipe(eslint())
});

但这也过去了。

知道为什么gulp lint没有失败并出现掉毛错误?

1 个答案:

答案 0 :(得分:1)

如果您需要Gulp来调用任务并等待它完成,那么您需要从任务功能返回JavaScript Promise

在这种情况下,在 lint 函数中return调用之前添加关键字gulp.src意味着gulp.src返回的Promise传递给Gulp使用的基本机制,因此,Gulp可以从您的linting过程中获得结果。

const gulp = require('gulp');
const eslint = require('gulp-eslint');

gulp.task('lint', () => {
    return gulp.src(['src/**/*.js'])
        .pipe(eslint())
        .pipe(eslint.format())
        .pipe(eslint.failAfterError());
});