使用以下任务运行 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('./'));
});
答案 0 :(得分: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));
我用这段代码解决了这个问题:
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目标之前删除该文件。
如果有帮助,请告诉我。