Je ne vois toujours pas comment cela résout réellement la question à portée de main.
Si j'ai 4 tâches avec des dépendances définies entre elles
A B C D
où A dépend de B, etc. tel que défini par gulp.task('A',['B'],function A(){});
, puis j'ai défini une nouvelle tâche en utilisant gulp.watch en exécutant uniquement les fonctions dupliquerait les dépendances.
Par exemple, étant donné ces tâches (chaque fonction de tâches exposée via le nom):
function A(){}
gulp.task('A',['B'],A);
function A(){}
gulp.task('A',['B'],A);
function B(){}
gulp.task('B',['C'],B);
function C(){}
gulp.task('C',['D'],C);
function D(){}
gulp.task('D',[],D);
je peux écrire 1)
gulp.task('WATCHER', ['A'], function(){
...
}
qui exécuterait A-> D mais si, par exemple, l'étape B échoue, elle n'entrerait jamais dans la tâche (pensez à une erreur de compilation ou de test)
ou je peux écrire 2)
gulp.task('WATCHER', [], function(){
gulp.watch(...,['A'])
}
qui n'exécuterait pas A-> D tant que quelque chose n'a pas été modifié en premier.
ou je peux écrire 3)
gulp.task('WATCHER', [], function(){
D();
C();
B();
A();
gulp.watch(...,['A'])
}
ce qui entraînerait une duplication (et des erreurs au fil du temps) de la hiérarchie de dépendances.
PS: Au cas où quelqu'un se demanderait pourquoi je voudrais que ma tâche de surveillance s'exécute si l'une des tâches dépendantes échoue, c'est généralement parce que j'utilise watch pour le développement en direct. par exemple. Je commence ma tâche de surveillance pour commencer à travailler sur des tests, etc. et il se peut que le code initial avec lequel je commence ait déjà des problèmes, donc des erreurs.
J'espère donc que gulp run ou un équivalent reste pendant un certain temps
scripts
, mais il est également logique de forcer l'exécution de cette tâche tout de suite (sans attendre que certains fichiers de script soient modifiés).