Gulp 如何将一条吞咽管道推到另一条管道上
我想通过构建管道处理一系列文件夹。对于每个文件夹,我启动另一个gulp管道来创建一些源文件。最后,我想通过zip()插件将它们连接在一起,以生成最终的工件。 下面的伪代码显示了我的方法。但是,我无法将Gulp 如何将一条吞咽管道推到另一条管道上,gulp,Gulp,我想通过构建管道处理一系列文件夹。对于每个文件夹,我启动另一个gulp管道来创建一些源文件。最后,我想通过zip()插件将它们连接在一起,以生成最终的工件。 下面的伪代码显示了我的方法。但是,我无法将gulp.src的结果推送到当前管道 return gulp.src(someFolder) .pipe(through(function(folder, enc, cb){ // how to add the result of the foll
gulp.src
的结果推送到当前管道
return gulp.src(someFolder)
.pipe(through(function(folder, enc, cb){
// how to add the result of the following line to my
// own pipeline????
this.push(gulp.src(path.join(folder, "whatever"))
.pipe(somePlugin()));
}))
.pipe(zip(....))
.pipe(gulp.dest(....));
有没有关于如何将这些管道组合在一起的提示?这正是本文的目的。使用该选项,您发布的代码的等效项如下所示:
var foreach = require('gulp-foreach');
return gulp.src(someFolder)
.pipe(foreach(function(stream, folder) {
return gulp.src(path.join(folder.path, "whatever"))
.pipe(somePlugin());
}))
.pipe(zip(....))
.pipe(gulp.dest(....));
请注意,上述操作将丢弃原始gulp.src(someFolder)
中的所有文件。它们将不包括在邮政编码中。如果您想保留这些,您可以使用:
这就是我要找的。谢谢,我不知道这个插件。
var foreach = require('gulp-foreach');
var merge = require('merge-stream');
return gulp.src(someFolder)
.pipe(foreach(function(stream, folder) {
return merge(stream,
gulp.src(path.join(folder.path, "whatever"))
.pipe(somePlugin()));
}))
.pipe(zip(....))
.pipe(gulp.dest(....));