我有一个Gulp任务,用于生成合并后的JS文件。我正在使用watch函数检测项目中所有文件的更改,并希望concat任务仅在自上次执行以来源文件发生更改时重新合并文件。
注意:我可以使用更具体的watch命令,但在我真实的产品案例中,我们正在从多个源JS文件组合中生成多个合并的JS文件,因此为每个文件创建监视和任务要复杂得多。
类似这样:
注意:我可以使用更具体的watch命令,但在我真实的产品案例中,我们正在从多个源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/'));
});
我考虑使用lazypipe来处理最后两个步骤,以便只有在有文件时才运行concat和dest,但我不知道如何:
- 根据管道中是否还有任何文件(在cache()之后)运行条件
- 重新获取所有源文件(基本上再次发出gulp.src()以重新启动流)
我知道可以在第二部分中使用gulp-remember,但在我的实际生产案例中,如果可能的话,重建流会更加清晰。
有没有人在此之前做过这个或者有任何提示从哪里开始?