我正在使用gulp eslint。
没有gulp,我只是运行eslint ./src --fix
。我无法弄清楚如何用gulp实现这一点。我在下面尝试过,将fix设置为true,但它没有修复任何文件:
gulp.task('lint', ['./src/**.js'], () => {
return gulp.src()
.pipe($.eslint({fix:true}))
.pipe($.eslint.format())
.pipe($.eslint.failAfterError());
});
我希望修复./src
下的所有文件。我如何实现这一目标?
答案 0 :(得分:9)
以下是我的项目中正确的方法:
var gulp = require('gulp'),
eslint = require('gulp-eslint'),
gulpIf = require('gulp-if');
function isFixed(file) {
// Has ESLint fixed the file contents?
return file.eslint != null && file.eslint.fixed;
}
gulp.task('lint', function () {
// ESLint ignores files with "node_modules" paths.
// So, it's best to have gulp ignore the directory as well.
// Also, Be sure to return the stream from the task;
// Otherwise, the task may end before the stream has finished.
return gulp.src(['./src/**.js','!node_modules/**'])
// eslint() attaches the lint output to the "eslint" property
// of the file object so it can be used by other modules.
.pipe(eslint({fix:true}))
// eslint.format() outputs the lint results to the console.
// Alternatively use eslint.formatEach() (see Docs).
.pipe(eslint.format())
// if fixed, write the file to dest
.pipe(gulpIf(isFixed, gulp.dest('../test/fixtures')))
// To have the process exit with an error code (1) on
// lint error, return the stream and pipe to failAfterError
// last.
.pipe(eslint.failAfterError());
});
gulp.task('default', ['lint'], function () {
// This will only run if the lint task is successful...
});