Не могу получить gulp-jscs для записи исправленных файлов поверх оригиналов
Нет проблем с запуском плагина gulp-jscs для анализа моего кода с помощью следующей задачи. Однако, когда я добавляю fix:true
в файлах ничего не меняется, и теперь JSCS работает так, как будто он вообще не работает... когда я удаляю объект, переданный в плагин JSCS, и удаляю gulp.dest()
линия, он сообщит о проблемах стиля кода.
Так что, похоже, либо проходя в fix:true
или привязка к записи исправленных файлов приводит к внутреннему короткому замыканию JSCS... идеи?
var $ = require('gulp-load-plugins')({lazy: true});
gulp.task('vet', function () {
log('Analyzing source with JSHint and JSCS');
return gulp
.src(config.allJs, {base: './'})
.pipe($.jshint())
.pipe($.jshint.reporter('jshint-stylish', {verbose: true}))
.pipe($.jscs({fix:true}))
.pipe(gulp.dest('./'));
});
1 ответ
Обновление 2
Я нашел более простой / чистый способ сделать это, просто укажите базовый параметр
gulp.src(files, {base: './'})
тогда file.name будет содержать полный путь, чтобы вы могли выводить в текущий каталог
gulp.dest('.')
итак в конце:
gulp.src(files, {base: './'})
.pipe(jscs({fix: true}))
.pipe(jscs.reporter())
.pipe(jscs.reporter('fail'))
.pipe(gulp.dest('.'))
.on('error', console.error.bind(console));
Обновление 1
Я решил эту проблему с помощью этого кода:
var gulp = require('gulp');
var jscs = require('gulp-jscs');
var foreach = require('gulp-foreach');
var rimraf = require('gulp-rimraf');
gulp.task('jscs', () => {
return gulp.src(['file1.js', 'file2.js'])
.pipe(foreach((stream, file) => {
return stream
.pipe(jscs({ fix: true }))
.pipe(jscs.reporter())
//.pipe(jscs.reporter('fail'))
.pipe(rimraf())
.pipe(gulp.dest(file.base));
}));
});
зависимости:
npm install --save-dev gulp gulp-rimraf gulp-foreach gulp-jscs
В глобальном масштабе gulp-foreach перебирает каждый src со своим собственным потоком, rimraf удаляет файл перед записью в место назначения vinyl.base.
Дайте мне знать, если это поможет.