Tôi vẫn không biết làm thế nào điều này thực sự giải quyết câu hỏi trong tầm tay.
Nếu tôi có 4 nhiệm vụ với các phụ thuộc được xác định giữa chúng
A B C D
trong đó A phụ thuộc vào B, v.v. như được định nghĩa bởi gulp.task('A',['B'],function A(){});
và sau đó tôi đã xác định một tác vụ mới bằng cách sử dụng gulp.watch chỉ chạy các chức năng sẽ sao chép các phụ thuộc.
Ví dụ: đưa ra các nhiệm vụ này (mỗi chức năng nhiệm vụ được hiển thị thông qua tên):
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);
tôi có thể viết 1)
gulp.task('WATCHER', ['A'], function(){
...
}
mà sẽ thực thi A-> D nhưng nếu ví dụ: Bước B không thành công, nó sẽ không bao giờ nhập tác vụ (hãy nghĩ đến lỗi biên dịch hoặc kiểm tra)
hoặc tôi có thể viết 2)
gulp.task('WATCHER', [], function(){
gulp.watch(...,['A'])
}
mà sẽ không chạy A-> D cho đến khi một cái gì đó được thay đổi đầu tiên.
hoặc tôi có thể viết 3)
gulp.task('WATCHER', [], function(){
D();
C();
B();
A();
gulp.watch(...,['A'])
}
điều này sẽ gây ra sự trùng lặp (và lỗi theo thời gian) của hệ thống phân cấp phụ thuộc.
Tái bút: Trong trường hợp ai đó đang thắc mắc tại sao tôi muốn tác vụ đồng hồ của mình thực thi nếu bất kỳ tác vụ phụ thuộc nào không thành công, thường là do tôi sử dụng đồng hồ để phát triển trực tiếp. ví dụ. tôi bắt đầu tác vụ đồng hồ của mình để bắt đầu làm việc với các bài kiểm tra, v.v. và có thể mã ban đầu mà tôi bắt đầu sử dụng đã có vấn đề do đó có lỗi.
Vì vậy, tôi hy vọng rằng chạy nuốt hoặc một số tương đương sẽ ở lại trong một thời gian
scripts
, nhưng cũng có lý khi buộc chạy tác vụ này ngay lập tức (không cần đợi cho đến khi một số tệp kịch bản thay đổi).