रन-सीक्वेंस सबसे स्पष्ट तरीका है (कम से कम जब तक गुल 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 )