連結された JS ファイルを生成する gulp タスクがあります。プロジェクト内のすべてのファイルへの変更を検出するためにウォッチを使用しています。最後の実行以降にソース ファイルが変更された場合にのみ、concat タスクでファイルを再連結したいと考えています。
注: より具体的な監視コマンドを使用することもできますが、実際の本番環境では、ソース JS ファイルの複数の組み合わせから複数の連結された JS ファイルを生成しているため、これらのそれぞれに対して監視とタスクを作成するのははるかに複雑です。
このようなもの:
gulp.task('scripts', function() {
return gulp.src('src/**/*.js')
.pipe(cache('scripts'))
// If no changed files in pipeline, exit pipeline,
// else add in all src files again
.pipe(concat('app.js'))
.pipe(gulp.dest('build/'));
});
最後の 2 つのステップで lazypipe を使用することを考えたので、ファイルがある場合にのみ concat と dest を実行しますが、次の方法がわかりません。
- パイプラインにまだファイルが残っているかどうかに基づいて条件を実行します (cache() の後)
- すべてのソース ファイルを元に戻します (基本的に、gulp.src() を再発行してストリームを再準備します)。
2 番目の部分に gulp-remember を使用できることはわかっていますが、本番環境では、可能であればストリームを再構築するだけの方がはるかにクリーンです。
以前にこれをやった人はいますか、どこから始めるべきかについてのヒントはありますか?