【发布时间】:2020-09-08 19:25:44
【问题描述】:
我正在尝试遍历文件名列表,移动文件并压缩它们,然后在 gulp 中删除文件。我一直遇到下一个任务在上一个任务完成之前启动的问题。
函数 moveFiles(cb) {
folders.forEach(function(item,index){
var _tmp = '../final_files/' + item;
return Promise.all([
new Promise(function(resolve, reject) {
gulp.src('../' + item + '/**/*').pipe(gulp.dest(_tmp))
.on('end', resolve)
}),
new Promise(function(resolve, reject) {
gulp.src('../master/assets/**/*.*').pipe(gulp.dest(_tmp + '/assets/'))
.on('end', resolve)
}),
new Promise(function(resolve, reject) {
gulp.src([_tmp + '/**', _tmp + '/style/**', _tmp + '/js/**'], {base: "./"})
.pipe(replace('../master/assets', 'assets'))
.pipe(gulp.dest('.'))
.on('end', resolve)
}),
new Promise(function(resolve, reject) {
return gulp.src(_tmp + '/**/*.*')
.pipe(zip(item + '.zip'))
.pipe(gulp.dest( '../final_files/'))
.on('end', resolve)
}),
]).then(function () {
return gulp.src(_tmp, {read: false}).pipe(clean({force: true}));
});
});
}
我试图将其分解为任务,但我不知道如何将参数传递给任务,或者让任务等待它完成。任何方向将不胜感激。
问候
【问题讨论】:
-
看看stackoverflow.com/questions/52102143/…——也许可以试试简单的for循环。