我的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行,在我的项目中重复使用它们来完成几个gulp任务。我怎么能这样做?
我找到了multipipe包但它不支持将变量传递给新管道(你可以看到我需要在新管道中传递options.dest
)。
答案 0 :(得分:3)
使用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)