从 gulp 任务执行时检查通过,但应该会失败
Linting passes when executed from a gulp task, but it should fail
我正在使用以下命令对我的 JavaScript 代码进行 linting:
eslint src/**/*.js
这会发现数百个 linting 错误。
我正在尝试使 linting 成为管道的一部分。因此,我为它做了一个gulp任务
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
不会因 linting 错误而失败吗?
如果您需要 Gulp 调用任务并等待它完成,那么您需要 return 来自 任务的 JavaScript Promise 函数。
在这种情况下,在 gulp.src
调用 lint 函数之前添加关键字 return
意味着 gulp.src
returns 被传递到 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());
});
我正在使用以下命令对我的 JavaScript 代码进行 linting:
eslint src/**/*.js
这会发现数百个 linting 错误。
我正在尝试使 linting 成为管道的一部分。因此,我为它做了一个gulp任务
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
不会因 linting 错误而失败吗?
如果您需要 Gulp 调用任务并等待它完成,那么您需要 return 来自 任务的 JavaScript Promise 函数。
在这种情况下,在 gulp.src
调用 lint 函数之前添加关键字 return
意味着 gulp.src
returns 被传递到 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());
});