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文档。