Gulp-filter正在过滤..什么都没有

时间:2014-09-24 21:43:48

标签: javascript configuration gulp gulp-filter

实际上这就是我的目录的样子:

-Project
  -app
    -js
      -some.js
      -libs
        -some.js
        -some.js
  -dist
    -js
      -some.js
      -libs
        -some.js
        -some.js

我正在使用gulp来管理这个,这是我的问题,我无法成功将libs目录过滤到我的js lint。 (我只想扫描自己的js,而不是lib)

所以我试过这个:

gulp.task('js', function(){
    var filter = gulpFilter(['**/*', '!app/js/libs/**/*.js']);
    gulp.src('app/js/**')
        .pipe(filter)
        .pipe(jshint())
        .pipe(jshint.reporter('jshint-stylish'))
        .pipe(filter.restore())
        .pipe(gulp.dest('./dist/js'))
});

但是jshint仍然适用于libs:/

欢迎任何帮助! :)

1 个答案:

答案 0 :(得分:2)

实际上,由于gulp.src支持路径排除,因此您不需要过滤器来实现您想要的功能。更改以下任务,你会很好;)

gulp.task('js', function () {
    return gulp.src(['app/js/**/*.js', '!app/js/libs/**'])
        .pipe(jshint())
        .pipe(jshint.reporter('jshint-stylish'))
        .pipe(gulp.dest('./dist/js'))
});

编辑:考虑您的评论,您应该使用

gulp.task('js', function(){
    var filter = gulpFilter(['*.js', '!app/js/libs/**']);
    return gulp.src('app/js/**')
        .pipe(filter)
        .pipe(jshint())
        .pipe(jshint.reporter('jshint-stylish'))
        .pipe(filter.restore())
        .pipe(gulp.dest('./dist/js'))
});