Я до сих пор не понимаю, как это на самом деле решает поставленный вопрос.
Если у меня есть 4 задачи, между которыми определены зависимости
А, Б, В, D
где A зависит от B и т.д., как определено gulp.task('A',['B'],function A(){});
а затем я определил новую задачу, используя gulp.watch, запуск только функций, дублировал бы зависимости.
например, учитывая эти задачи (каждая функция задачи отображается через имя):
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);
я могу написать 1)
gulp.task('WATCHER', ['A'], function(){
...
}
который будет выполнять A-> D, но если, например, шаг B не удастся, он никогда не войдет в задачу (подумайте об ошибке компиляции или тестирования)
или я могу написать 2)
gulp.task('WATCHER', [], function(){
gulp.watch(...,['A'])
}
который не будет запускать A-> D, пока что-то не будет сначала изменено.
или я могу написать 3)
gulp.task('WATCHER', [], function(){
D();
C();
B();
A();
gulp.watch(...,['A'])
}
что может вызвать дублирование (и со временем ошибки) иерархии зависимостей.
PS: В случае, если кому-то интересно, почему я хочу, чтобы моя задача слежения выполнялась, если какая-либо из зависимых задач терпит неудачу, обычно это связано с тем, что я использую часы для разработки в реальном времени. например. Я запускаю свою задачу слежения, чтобы начать работу над тестами и т. д., и может быть, что исходный код, с которого я начинаю, уже имеет проблемы, следовательно, ошибки.
Так что я надеюсь, что gulp run или что-то подобное останется в течение некоторого времени
scripts
, но также имеет смысл принудительно запустить эту задачу сразу (не дожидаясь изменения файла сценария).