रन-सीक्वेंस सबसे स्पष्ट तरीका है (कम से कम जब तक गुल 4.0 जारी नहीं होता है)
रन-सीक्वेंस के साथ , आपका काम इस तरह दिखेगा:
var sequence = require('run-sequence');
/* ... */
gulp.task('develop', function (done) {
sequence('clean', 'coffee', done);
});
लेकिन अगर आप (किसी कारण से) इसका उपयोग नहीं करना चाहते हैं, तो gulp.startविधि मदद करेगी :
gulp.task('develop', ['clean'], function (done) {
gulp.on('task_stop', function (event) {
if (event.task === 'coffee') {
done();
}
});
gulp.start('coffee');
});
नोट: यदि आप केवल परिणाम को सुने बिना कार्य शुरू करते हैं, तो developकार्य पहले की तुलना में समाप्त coffeeहो जाएगा, और यह भ्रामक हो सकता है।
जरूरत न होने पर आप इवेंट श्रोता को भी हटा सकते हैं
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');
});
विचार करें कि कोई ऐसी task_errघटना है जिसे आप सुनना चाहते हैं।
task_stopसफल समापन पर ट्रिगर task_errहोता है , जबकि कुछ त्रुटि होने पर दिखाई देता है।
आपको यह भी आश्चर्य हो सकता है कि इसके लिए कोई आधिकारिक दस्तावेज क्यों नहीं है gulp.start()। गुलप के सदस्य के इस उत्तर से चीजें स्पष्ट होती हैं:
gulp.start इस उद्देश्य पर यह अनिर्दिष्ट है क्योंकि इससे जटिल बिल्ड फाइलें बन सकती हैं और हम नहीं चाहते कि लोग इसका उपयोग करें
(स्रोत: https://github.com/gulpjs/gulp/issues/426#issuecomment-41208007 )