gulpjs添加回以前被忽略的path?
当使用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
运行,现在它们不在stream中,不会被连接。
我如何解决这个问题? 我有一种感觉,我需要改变我的吞咽模式一点点…
而不是加回以前忽略的path,尝试使用gulp-if
只执行某些任务,如果这些文件符合条件。
用你的例子,在头顶上,下面应该做的(没有testing!):
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文档。