Я все ще не бачу, як це насправді вирішує питання.
Якщо у мене є 4 завдання із залежностями, визначеними між ними
А Б В Г
де 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: Якщо хтось задається питанням, чому я хотів би виконати завдання, яке слід виконувати, якщо якесь із залежних завдань провалиться, це зазвичай тому, що я використовую годинник для розвитку в реальному часі. напр. я запускаю завдання перегляду, щоб почати працювати над тестами і т. д., і може бути так, що початковий код, з якого я починаю, вже має проблеми, таким чином, помилки.
Тож я би сподівався, що ковтати чи якийсь еквівалент залишається деякий час
scripts
, але також має сенс змусити виконувати це завдання відразу (не чекаючи, поки деякі файли сценарію не зміняться).