2017-09-25 4 views
0

Ich brauche eine Folge von Gulp Aufgaben wie diese zu bauen:Mehrere Gulp Aufgaben warten auf einen anderen

Task1 -> Task2A, Task2B, Task2C -> Task3,

wo Aufgaben 2A, 2B, 2C laufen parallel (aber task1 sollte vorher abgeschlossen und nur einmal abgeschlossen werden).

Was ich versuche:

gulp.task('Task1', []); 

gulp.task('Task2A', ['Task1']); 

gulp.task('Task2B', ['Task1']); 

gulp.task('Task2C', ['Task1']); 

gulp.task('Task3', ['Task2A', 'Task2B', 'Task2C']); 

Sieht aus wie es funktioniert, aber ich bin mir nicht sicher, es garantiert, dass Task1 nur 1 Mal ausgeführt wird, oder es kann mehrfach ausgelöst werden?

Vielen Dank.

Antwort

1

vielleicht einfachste Weg, dies zu tun (ohne gulp4.0 zu verwenden) ist die run-sequence plugin.

Für Ihren Fall:

var runSequence = require('run-sequence'); 

gulp.task('build', function(callback) { 
    runSequence('Task1', 
       ['Task2A', 'Task2B', 'Task2C'], 
       'Task3', 
       callback); 
}); 

Stellen Sie sicher, dass Aussagen in alle Ihre Aufgaben zurückzukehren.

Bitte beachten

Dies bestimmt war 4.0 eine vorübergehende Lösung bis zur Veröffentlichung von Zug zu sein, die Unterstützung in ähnlicher Weise für die Definition Aufgabe Abhängigkeiten haben sollte.

Angesichts der Tatsache, dass Gulp 4 scheint nie vollständig freigegeben werden, nehmen Sie das für was Sie wollen. Seien Sie sich bewusst, dass diese Lösung ein Hack ist und möglicherweise nicht mehr mit einem zukünftigen Schluckupdate funktioniert.

0

Versuchen Sie, diese Struktur

gulp.task('Task1', []); 

gulp.task('Task2A', ['Task1']); 

gulp.task('Task2B', ['Task2A']); 

gulp.task('Task2C', ['Task2B']); 

gulp.task('Task3', ['Task2C']); 

Auch können Sie Aufgabe in eine andere Aufgabe ausführen, wie folgt aus:

gulp.task('task1', function(){ 
    gulp.start('task2'); 
}) 
+0

Es ist nicht das, was ich brauche. In Ihrem Beispiel wird Task2A/B/C nacheinander ausgeführt. –