2016-04-08 8 views
7

यहाँ मेरी gulpfile.jsGulpfile.js सबसे अच्छा अभ्यास को देखने के

// Gulp watchlist 
gulp.task('watch', ['browserSync', 'sass'], function(){ 
    gulp.watch('app/scss/**/*.scss', ['sass']); 
    gulp.watch('app/*.html').on('change', browserSync.reload); 
    gulp.watch('app/js/**/*.js').on('change', browserSync.reload); 
    //add more watchers here 
}); 

और इस काम करता है के लिए मेरे वर्तमान ध्यानसूची है।

लेकिन एक ट्यूटोरियल मैं अनुसरण कर रहा हूं कुछ अलग है:

gulp.task('watch', ['browserSync', 'sass'], function(){ 
    gulp.watch('app/scss/**/*.scss', ['sass']); 
    // Reloads the browser whenever HTML or JS files change 
    gulp.watch('app/*.html', browserSync.reload); 
    gulp.watch('app/js/**/*.js', browserSync.reload); 
}); 

मैं .on ('बदलें', browserSync.reload) की आवश्यकता है? यह काम करता हैं; मैं सिर्फ उत्सुक हूं अगर मैं जो कर रहा हूं वह अच्छा अभ्यास नहीं है। धन्यवाद!

उत्तर

1

नहीं, आपको कस्टम on('change') जोड़ने की आवश्यकता नहीं है। ट्यूटोरियल की तरह वॉचर शुरू करते समय आपको ईवेंट हैंडलर पास करना चाहिए। अन्यथा, यह डिफ़ॉल्ट रूप से परिवर्तन पर कुछ भी करने के लिए गल्प को बताना नहीं है, फिर बाद में अपना श्रोता जोड़ें।

एक और लाभ यह आप एक सरणी के रूप में एक ही बार में एकाधिक ईवेंट हैंडलर्स में पारित कर सकते हैं यदि आपके संचालकों खुद को बजाय on('change', task1Function).on('change', task2Function)

+0

मैं देख रहा हूँ चेनिंग का घूंट रहे कार्यों gulp.watch(..., ['task1', 'task2']), धन्यवाद है ... मेरे पास है मैं तो सवाल अनुवर्ती कार्रवाई अनुमान लगाओ ... सरणी का आदेश मायने रखता है, है ना? तो अगर मैं broswersync रीलोड से पहले सबकुछ को कम करना चाहता हूं तो मुझे सरणी के अंत में ब्राउजरसिंक की जांच करनी चाहिए? याँ नहीं? lol –

+0

हां यह सही है :) लेकिन फिर आपको यह समझने की आवश्यकता है कि गल्प कार्य प्रकृति में एसिंक हैं इसलिए मैं इसके बजाय एक फ़ंक्शन कर दूंगा और अपने हैंडलर को सिंक्रनाइज़ कर दूंगा! –

1

Gulp watch हमेशा एक EventEmitter कि परिवर्तन की घटनाओं का उत्सर्जन करता है देता है, तो कॉल gulp.watch('app/*.html').on('change', browserSync.reload) लिखा जा सकता है के रूप में:

var watcher = gulp.watch('app/*.html'); 
watcher.on('change', browserSync.reload); 

watch समारोह निम्नलिखित पैरामीटर वाला कहा जा सकता है: gulp.watch(glob [, opts], tasks) या gulp.watch(glob [, opts, cb])

तो आप दोनों प्रकारों का उपयोग कर सकते हैं, लेकिन छोटी विधि बेहतर है।

संबंधित मुद्दे