使用gulpjs时,我想在某些文件上运行jshint(忽略某些文件),并将所有文件连接起来,包括之前被忽略的文件。
// Specify js files but ignore .min.js files
var paths = [ './public/js/*.js', '!./public/js/*.min.js' ];
gulp.task('scripts', function(){
gulp.src( paths )
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'))
.pipe(concat())
.pipe(gulp.dest('./public/js/all.min.js'));
});
上述问题是因为*.min.js
文件在原始来源中被忽略了,因为我不希望它们通过jshint
运行,现在它们已经不在流中了不会被联合。
如何解决这个问题?我有一种感觉,我需要改变一下我的gulp模式...
答案 0 :(得分:3)
尝试使用gulp-if
仅执行某些任务"而不是添加回先前忽略的路径。文件符合条件。
用你的例子,在头顶上,以下应该做(未经测试!):
var paths = [ './public/js/*.js' ];
gulp.task('scripts', function(){
gulp.src( paths )
.pipe(gulpif('!./public/js/*.min.js', jshint()))
.pipe(jshint.reporter('jshint-stylish'))
.pipe(concat())
.pipe(gulp.dest('./public/js/all.min.js'));
});
有关条件的更多信息,请参阅gulp-if和gulp-match文档。