【问题标题】:Gulp-filter is filtering .. nothingGulp-filter 正在过滤 .. 没有
【发布时间】:2014-09-24 21:43:48
【问题描述】:

其实我的目录是这样的:

-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 仍然适用于库:/

欢迎任何帮助! :)

【问题讨论】:

  • 您可以尝试将您的filter 更改为['**/*', '!app/js/{lib,lib/**}'] 并将您的src 更改为'app/js/**/*' 吗?
  • 感谢您的回复,我尝试了,但它仍然在库上执行 jshint。

标签: javascript configuration gulp gulp-filter


【解决方案1】:

实际上你不需要过滤器来实现你想要的,因为 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'))
});

【讨论】:

  • 到目前为止我选择了这个解决方案,但是它让我为我的 js 文件创建了 2 个任务。一个用于 jshint 我自己的 javascript 并将其放入 dist。另一个将我的库放在 dist 但没有 jshint 他们。 gulp-filter 和他的 filter.restore() 将允许一次性完成所有操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多