我在这样的文件夹中有文件:
- source_a
--- file_x
--- file_y
--- file_z
- source_b
--- file_z
- dest
我想将所有文件从source_a
复制到dest
,完成此操作后,我想将所有文件从source_b
复制到dest
,以便file_z
将被运行。
这是我的代码
gulp.task("myCopy", ["copy_a"], function() {
return gulp.src('source_b').pipe(gulp.dest('dest'))
});
gulp.task("copy_a", [], function(theme) {
return [
gulp.src('source_b').pipe(gulp.dest('dest')),
gulp.src('other_stuff').pipe(gulp.dest('to_other_places'))
];
});
但最终dest
中的所有文件都来自source_a
......如果我再次运行copy_a
单独运行它可以工作......我错过了什么?
谢谢。
为什么不创建 2 个复制任务并按顺序运行它们,如下所示:
gulp.task('copy_a', function(){
// copy all from folder A
return gulp.src('source_a/**').pipe(gulp.dest('dest'))
});
gulp.task('copy_b', function(){
// copy all from folder B
return gulp.src('source_b/**').pipe(gulp.dest('dest'))
});
gulp.task('copy', function(cb) {
var runSequence = require('run-sequence');
runSequence('copy_a', 'copy_b', cb); // run in sequence
});
这样,您的copy
任务按顺序运行,任务copy_b
仅在copy_a
完成后启动。
只需调用copy
任务,您就可以上路了。