Gulp:根据流的内容传递到流

  • 本文关键字:Gulp node.js stream streaming gulp
  • 更新时间 :
  • 英文 :


我有以下简化的吞咽任务:

gulp.src(...)
    .pipe(stuff())
    .pipe(moreStuff())
    .pipe(imagemin())
    .pipe(yetMoreStuff());

我只希望在文件路径包含"xyz"时调用imagemin流,但我希望始终调用其他三个流。

在另一个地方称呼gulp.src()是不合适的——这个例子被大大简化了,复制所有内容会像地狱一样混乱。

到目前为止,我已经做到了这一点:

var through = require('through2');
gulp.src(...)
    .pipe(stuff())
    .pipe(moreStuff())
    .pipe(through.obj(function (file, enc, cb) {
          console.log(file.path.indexOf('hero') !== -1);
          // file has a pipe method but what do I do?!
        }))
    .pipe(yetMoreStuff());

什么都不做。我对黑胶唱片/流不够了解,无法自己做到这一点:(

我该怎么做?

听起来gulp-filter可能是你要找的。

var Filter = require('gulp-filter');
var filter = Filter(['**xyz**']);
gulp.src(...)
    .pipe(stuff())
    .pipe(moreStuff())
    .pipe(filter)
    .pipe(imagemin())
    .pipe(filter.restore())
    .pipe(yetMoreStuff());

相关内容

  • 没有找到相关文章

最新更新