gulpjs在之前被忽略的路径中添加回来了吗?

时间:2014-06-11 04:17:12

标签: javascript node.js jshint gulp

使用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模式...

1 个答案:

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