我有一个生成连接 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/'));
});
我考虑在最后两个步骤中使用惰性管道,所以如果有文件,我只运行 concat 和 dest,但我不知道如何:
- 根据管道中是否还有任何文件(在 cache() 之后)运行条件
- 带回所有源文件(基本上再次重新发出 gulp.src() 以重新启动流)
我知道我可以在第二部分使用 gulp-remember,但在我的生产案例中,如果可能的话,重建流会更干净。
有人以前做过这个或有任何关于从哪里开始的提示吗?