2016-01-18 53 views
0

我必须在文件夹中的文件是这样的:复制文件在不同一饮而尽任务相同的文件夹

- source_a 
--- file_x 
--- file_y 
--- file_z 
- source_b 
--- file_z 
- dest 

,我希望将所有文件复制从source_adest,这结束后,我想将所有文件从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 ......我失去了什么?

谢谢。

+0

最终我用fs-extra来同步复制... – MTZ4

回答

0

你为什么不创建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_bcopy_a完成只启动。

只要拨打copy任务,你就会在路上。

+0

这是一样的,我试过了,结果保持不变... – MTZ4

+0

我的不好..给了runSequence一个数组,导致了一个并行运行... runSequence ('copy_a','copy_b',cb);会做的伎俩。改变了我的答案。 –

+0

埃尔格,它仍然没有工作,我看不出它应该工作的原因。 runSequence会做和我一样的事情。当我在两个任务之间设置任务依赖关系时,我知道他们将运行异步,不需要添加runSequence。这是关于流的东西,依赖性是可以的。 – MTZ4

相关问题