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.start
phươ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ả, develop
tác vụ sẽ kết thúc sớm hơn coffee
và đ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_err
sự 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_err
xuấ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 )