Todavía no veo cómo esto realmente resuelve la pregunta en cuestión.
Si tengo 4 tareas con dependencias definidas entre ellas
A B C D
donde A depende de B, etc., según lo definido por gulp.task('A',['B'],function A(){});
y luego definí una nueva tarea usando gulp.watch ejecutando solo las funciones duplicaría las dependencias.
por ejemplo, dadas estas tareas (cada función de tareas expuesta a través del nombre):
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);
puedo escribir 1)
gulp.task('WATCHER', ['A'], function(){
...
}
que ejecutaría A-> D pero si, por ejemplo, el Paso B falla, nunca entraría en la tarea (piense en un error de compilación o prueba)
o puedo escribir 2)
gulp.task('WATCHER', [], function(){
gulp.watch(...,['A'])
}
que no ejecutaría A-> D hasta que se cambiara algo primero.
o puedo escribir 3)
gulp.task('WATCHER', [], function(){
D();
C();
B();
A();
gulp.watch(...,['A'])
}
lo que causaría duplicación (y errores a lo largo del tiempo) de la jerarquía de dependencias.
PD: En caso de que alguien se pregunte por qué querría que se ejecute mi tarea de vigilancia si alguna de las tareas dependientes falla, generalmente se debe a que uso la vigilancia para el desarrollo en vivo. p.ej. Comienzo mi tarea de reloj para comenzar a trabajar en pruebas, etc. y puede ser que el código inicial con el que comienzo ya tenga problemas, por lo tanto, errores.
Así que espero que gulp run o algo equivalente se quede por algún tiempo
scripts
, pero también tiene sentido forzar la ejecución de esta tarea de inmediato (sin esperar hasta que cambie algún archivo de script).