How to fix files with gulp-eslint?
Old question but adding .pipe(gulp.dest(file => file.base))
is what got it to work for me. As in:
gulp.task('lint', ['./src/**.js'], () => {
return gulp.src()
.pipe($.eslint({fix:true}))
.pipe($.eslint.format())
.pipe(gulp.dest(file => file.base)) // <-- NEW: Output fixed version of file.
.pipe($.eslint.failAfterError());
});
Here is the right way that is working in my project:
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...
});