2014-09-27 14 views
38

Gulp kullanımını gösteren çevrimiçi örneklerde, bazı görevler akışı döndürür ve diğerleri bunu yapmaz. bir dönüş ileBir yüce görev, herhangi bir şey geri vermek zorunda mı?

gulp.task('tsc', function() 
{ 
    gulp.src('**/*.ts') 
     // ... 
}); 

Ve aynı kod,: Bir dönüşü olmayan Örneğin

,

gulp.task('tsc', function() 
{ 
    return gulp.src('**/*.ts') 
     // ... 
}); 

o akışı dönmek için gerekli mi?

cevap

35

Bir akış döndürmezseniz, her görevin eşzamansız sonucu, arayan tarafından veya herhangi bir bağımlı görev tarafından beklemez.

Örneğin

, dönen olmayan akarsuların: scripts görev tsc görev bağlıdır burada

$ gulp scripts 
[21:25:05] Using gulpfile ~/my-project/gulpfile.js 
[21:25:05] Starting 'tsc'... 
[21:25:05] Finished 'tsc' after 13 ms 
[21:25:05] Starting 'scripts'... 
[21:25:05] Finished 'scripts' after 10 ms 
[21:25:05] Compiling TypeScript files using tsc version 1.0.1.0 

Not. tsc'un 13 milisaniyede tamamlandığını bildirir, ki bu kesinlikle makul olduğuna inanılmak için çok hızlıdır. Daha sonra scripts görevi, çok küçük bir süre içinde yeniden başlatılıyor ve tamamlanıyor gibi görünüyor. Son olarak, tsc tarafından gerçekleştirilen gerçek işlem başlatılır. Açıkça, ne tsc ne de scripts, tamamlama adımının tamamlanmasını beklemiyordu. Bu görevleri kendi akışları döndüğünüzde

, çıkış yerine farklı görünür: Burada

$ gulp scripts 
[21:42:25] Using gulpfile ~/my-project/gulpfile.js 
[21:42:25] Starting 'tsc'... 
[21:42:25] Compiling TypeScript files using tsc version 1.0.1.0 
[21:42:32] Finished 'tsc' after 6.65 s 
[21:42:32] Starting 'scripts'... 
[21:42:32] Finished 'scripts' after 204 ms 

dizisi mantıklı ve bildirilen süreler beklentilerini karşılamak.

+7

Yalancı olmayan ancak akışları içermeyen bir yüce göreviniz varsa ne olur? 'Done()' işlevini çağırabilir veya bir söz verebilir misiniz? – Bill

+1

Görevi, son parametre olarak bir geri arama işlevini kabul edecek şekilde tanımlayabilirsiniz ya da bir söz verebilirsiniz. Buraya bakın: https://github.com/gulpjs/gulp/blob/v3.9.1/docs/API.md#gulptaskname--deps-fn –

İlgili konular