2016-01-18 75 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

相關問題