2016-04-02 7 views
3

私は私の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を渡す必要が見ることができる)新しいパイプに変数を渡すことをサポートしていません。

答えて

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) 
+0

どういうわけか、私はそれはのparamでの作業を取得することはできません... ドキュメントと議論は '..マッチング(天気をは' .pipe(FOO)を使用する 'またはされていません.pipe(foo()) 'https://github.com/OverZealous/lazypipe/issues/19 – sandrooco

+0

@Sandrooco' 'lazypipe 'に' foo'を追加したいときは '.pipe(foo)'です。 'lazypipe'自体が' foo'のときは.pipe(foo()) 'を返します –

+0

' 'lazypipe ''にパラメータを渡すには? – sandrooco

関連する問題