Stream 将不同gulp任务中的文件复制到同一文件夹

Stream 将不同gulp任务中的文件复制到同一文件夹,stream,copy,gulp,Stream,Copy,Gulp,我的文件夹中有如下文件: - source_a --- file_x --- file_y --- file_z - source_b --- file_z - dest 我想把所有文件从source\u a复制到dest,完成后我想把所有文件从source\u b复制到dest,这样file\u z就可以运行了 这是我的密码 gulp.task("myCopy", ["copy_a"], function() { return gulp.src('source_b').pipe(gu

我的文件夹中有如下文件:

- source_a
--- file_x
--- file_y
--- file_z
- source_b
--- file_z
- dest
我想把所有文件从
source\u a
复制到
dest
,完成后我想把所有文件从
source\u b
复制到
dest
,这样
file\u 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\u a
。。。如果我在单独运行时再次运行
copy\u a
,它会工作。。。我错过了什么


谢谢。

为什么不创建两个复制任务并按顺序运行它们,如下所示:

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\u b
仅在
copy\u a
完成时启动


只要调用
copy
任务,您就可以上路了。

我的错。。给runSequence一个数组,导致并行运行。。。运行顺序('copy_a','copy_b',cb);我会成功的。改变了我的答案。埃尔格,它仍然不起作用,我不明白为什么它应该起作用。runSequence将执行与我相同的操作。当我在两个任务之间设置任务依赖关系时,我知道它们将异步运行,无需添加runSequence。这是关于流的,依赖关系是正常的。请阅读:通过返回流,任务是异步的。运行顺序的使用使您可以按顺序运行。当我运行我的任务(如上所述)时,
copy\u b
仅在
copy\u a
完成时才会触发。请阅读文档,这是正确的(当我使用任务依赖项时也是如此)。然而,这个问题并没有得到解决。争论一些我们都同意的事情是无济于事的。最终我用fs extra来同步复制。。。