Gulp 使用concat步骤的不同参数多次运行管道段
我是这部电影的粉丝 我有一个吞咽任务,它可以像Gulp 使用concat步骤的不同参数多次运行管道段,gulp,Gulp,我是这部电影的粉丝 我有一个吞咽任务,它可以像 gulp.task('cat', function() { gulp.src( <value-goes-here> ) . <many pipeline steps> . .pipe(concat(<key-goes-here>)) .pipe(gulp.dest('target/') . <more pipeline step
gulp.task('cat', function() {
gulp.src( <value-goes-here> )
.
<many pipeline steps>
.
.pipe(concat(<key-goes-here>))
.pipe(gulp.dest('target/')
.
<more pipeline steps to be run on 'dest/a.js' and 'dest/a1.js'>
.
});
试试这个:
var Q = require('q');
gulp.task('cat', function() {
var promises = Object.keys(files).map(function (key) {
var deferred = Q.defer();
var val = files[key];
gulp.src(val)
.
<many pipeline steps>
.
.pipe(concat(key))
.pipe(gulp.dest('target/')
.
<more pipeline steps to be run on 'dest/a.js' and 'dest/a1.js'>
.
.on('end', function () {
deferred.resolve();
});
return deferred.promise;
});
return Q.all(promises);
});
var Q=require('Q');
吞咽任务('cat',函数(){
var promises=Object.keys(文件).map(函数(键){
var deferred=Q.deferred();
var val=文件[key];
大口src(val)
.
.
.管道(混凝土(图例))
.pipe(吞咽目标('target/'))
.
.
.on('end',函数(){
延迟。解决();
});
回报。承诺;
});
返回Q.all(承诺);
});
通过使用组合流
或流组合器
包,您还可以使用流而不是承诺来完成类似的场景
var Q = require('q');
var gulp = require('gulp');
var concat = require('gulp-concat');
var files = {
'a.js': ['src/aa.js', 'src/aaa.js'],
'a1.js': ['src/aa1.js', 'src/aaa1.js'],
};
gulp.task('cat', function() {
var promises = Object.keys(files).map(function (key) {
var deferred = Q.defer();
var val = files[key];
console.log(val);
gulp.src(val)
.pipe(concat(key))
.pipe(gulp.dest('dest/'))
.on('end', function () {
deferred.resolve();
});
return deferred.promise;
});
return Q.all(promises);
});
var Q = require('q');
gulp.task('cat', function() {
var promises = Object.keys(files).map(function (key) {
var deferred = Q.defer();
var val = files[key];
gulp.src(val)
.
<many pipeline steps>
.
.pipe(concat(key))
.pipe(gulp.dest('target/')
.
<more pipeline steps to be run on 'dest/a.js' and 'dest/a1.js'>
.
.on('end', function () {
deferred.resolve();
});
return deferred.promise;
});
return Q.all(promises);
});