在不写磁盘的情况下在吞咽任务之间传递数据
问题描述:
我正在尝试注释和缩小一个systemjs角度项目。 Systemjs带有一个构建函数,但它不是“吞噬意识”。有可能通过建设者一个选项来缩小,但没有一个用于ng-annotate,所以我需要大量的为我做两个代替。在不写磁盘的情况下在吞咽任务之间传递数据
gulp.task('bundle', function() {
var options = {}
builder.buildStatic('./assets/app/app.js', options)
.then(function(data) {
console.log("then called");
// make data available for another task
});
我如何可以结合以上
gulp.task('productionApp', function() {
return [source the output from 'bundle']
.pipe(ngannotate())
.pipe(uglify())
.pipe(gulp.dest('./dist'));
});
我可以只输出的第一个任务到一个文件,然后.src
在,但不能是最好的方式?
答
最简单的方法是将其保存在缓冲区(实际上是一个简单的对象)中,然后制作一个流并继续,就像您使用src
一样。
Gulp的存储库包含一个recipe它是如何完成的。
注:你应该让所有的load-*
任务在一开始运行,您可以使用run-sequence
因为他们已经完成,或者让他们为“真正的”工作依赖。
Yikes - 这真的很复杂。让我觉得我以某种方式错误地看待问题? –
为什么复杂?非常直接和优雅。您可以按照您的建议将其保存在中间目录中,但速度可能会更慢。另外,您可以在其上构建一个抽象,以使事情更轻松。无论如何,通过这种方式,您可以在任务之间“交流”(数据),而无需将实际数据保存在fs中。 –
好吧,我可以再试一次,但现在我看到ng-annotate + systemjs也有点烦琐。生命在流血的边缘... –