chuỗi chạy là cách rõ ràng nhất (ít nhất là cho đến khi Gulp 4.0 được phát hành)
Với chuỗi chạy , nhiệm vụ của bạn sẽ như thế này:
var sequence = require('run-sequence');
/* ... */
gulp.task('develop', function (done) {
sequence('clean', 'coffee', done);
});
Nhưng nếu bạn (vì một số lý do) không thích sử dụng nó, gulp.startphương pháp sẽ giúp :
gulp.task('develop', ['clean'], function (done) {
gulp.on('task_stop', function (event) {
if (event.task === 'coffee') {
done();
}
});
gulp.start('coffee');
});
Lưu ý: Nếu bạn chỉ bắt đầu tác vụ mà không nghe kết quả, developtác vụ sẽ kết thúc sớm hơn coffeevà điều đó có thể gây nhầm lẫn.
Bạn cũng có thể loại bỏ trình nghe sự kiện khi không cần thiết
gulp.task('develop', ['clean'], function (done) {
function onFinish(event) {
if (event.task === 'coffee') {
gulp.removeListener('task_stop', onFinish);
done();
}
}
gulp.on('task_stop', onFinish);
gulp.start('coffee');
});
Hãy xem xét đó cũng là task_errsự kiện bạn có thể muốn nghe.
task_stopđược kích hoạt khi kết thúc thành công, trong khi task_errxuất hiện khi có một số lỗi.
Bạn cũng có thể tự hỏi tại sao không có tài liệu chính thức cho gulp.start(). Câu trả lời này từ thành viên gulp giải thích những điều:
gulp.start không có giấy tờ về mục đích vì nó có thể dẫn đến các tệp xây dựng phức tạp và chúng tôi không muốn mọi người sử dụng nó
(nguồn: https://github.com/gulpjs/gulp/issues/426#issuecomment-41208007 )