如何使用gulp-eslint修复文件?

Sab*_*Luo 7 node.js eslint gulp

我正在使用gulpeslint.

没有一口气,我就跑了eslint ./src --fix.我无法弄清楚如何用gulp实现这一点.我尝试下面,将修复设置为true,但它不修复任何文件:

gulp.task('lint', ['./src/**.js'], () => {
return gulp.src()
    .pipe($.eslint({fix:true}))
    .pipe($.eslint.format())
    .pipe($.eslint.failAfterError());
});
Run Code Online (Sandbox Code Playgroud)

我希望./src修复所有文件.我该如何实现这一目标?

Tal*_*sar 11

这是在我的项目中正常工作的方式:

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...
});
Run Code Online (Sandbox Code Playgroud)

  • _WHY_ 这是“正确的方式”吗?特别是,为什么要删除“FailAfterError()”? (3认同)