Ainda não vejo como isso realmente resolve a questão em questão.
Se eu tiver 4 tarefas com dependências definidas entre elas
A, B, C, D
onde A depende de B, etc, conforme definido por gulp.task('A',['B'],function A(){});
e então eu defini uma nova tarefa usando gulp.watch rodando apenas as funções que duplicariam as dependências.
por exemplo, dadas essas tarefas (cada função de tarefas exposta através do nome):
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);
eu posso escrever 1)
gulp.task('WATCHER', ['A'], function(){
...
}
que executaria A-> D, mas se, por exemplo, a Etapa B falhar, ela nunca entrará na tarefa (pense em erro de compilação ou teste)
ou posso escrever 2)
gulp.task('WATCHER', [], function(){
gulp.watch(...,['A'])
}
que não executaria A-> D até que algo fosse alterado primeiro.
ou posso escrever 3)
gulp.task('WATCHER', [], function(){
D();
C();
B();
A();
gulp.watch(...,['A'])
}
o que causaria duplicação (e erros ao longo do tempo) da hierarquia de dependência.
PS: Caso alguém esteja se perguntando por que eu gostaria que minha tarefa do relógio fosse executada se alguma das tarefas dependentes falhar, é geralmente porque eu uso o relógio para desenvolvimento ao vivo. por exemplo. Eu inicio minha tarefa de monitoramento para começar a trabalhar em testes etc. e pode ser que o código inicial com o qual eu inicio já tenha problemas, portanto, erros.
Espero que o gulp run ou algo equivalente permaneça por algum tempo
scripts
, mas também faz sentido forçar a execução dessa tarefa imediatamente (sem esperar até que algumas alterações no arquivo de script).