如何组成吞咽管道的顺序

How to compose sequence of pipes for gulp?

本文关键字:顺序 管道 何组成      更新时间:2023-12-04

我的gulpfile.js:中有一个常见模式

var rev         = require('gulp-rev');
var buffer      = require('gulp-buffer');
gulp.src.some_stuff
  .pipe(anotherStuff)
  .pipe(buffer()) // this line & 4 lines down
  .pipe(rev())
  .pipe(gulp.dest(options.dest))
  .pipe(rev.manifest({ path: 'manifest.json', merge: true }))
  .pipe(gulp.dest(options.dest)) // to this
  .pipe(extrastuff)

我想写下这5行,以便在我的项目中通过几项任务重复使用它们。我该怎么做?

我找到了multipipe包,但它不支持将变量传递到新管道(您可以看到我需要在新管道中传递options.dest)。

使用lazypipe:

var lazypipe = require('lazypipe');
function something(dest) {
  return (lazypipe()
   .pipe(buffer)
   .pipe(rev)
   .pipe(gulp.dest, dest)
   .pipe(rev.manifest, { path: 'manifest.json', merge: true })
   .pipe(gulp.dest, dest))();
}
gulp.src.some_stuff
  .pipe(anotherStuff)
  .pipe(something(options.dest))
  .pipe(extrastuff)