2016-04-08 27 views
7

ecco la mia attuale lista per i miei gulpfile.jsGulpfile.js guardano le migliori pratiche

// 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 
}); 

e questo funziona.

ma un tutorial Seguo ha qualcosa di leggermente diverso:

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); 
}); 

ho bisogno del .on ('cambiamento', browserSync.reload)? Funziona; Sono solo curioso di sapere se quello che sto facendo non è una buona pratica. Grazie!

risposta

1

No, non è necessario aggiungere personalizzato on('change'). Dovresti passare il gestore di eventi durante l'inizializzazione del watcher come il tutorial. Altrimenti, è come dire a Gulp di non fare nulla in cambio di default, quindi aggiungere successivamente il listener.

Un altro vantaggio è che si può passare in più gestori di eventi in una sola volta come un array se i gestori sono compiti gulp stessi gulp.watch(..., ['task1', 'task2']) invece di concatenamento on('change', task1Function).on('change', task2Function)

+0

vedo, ti ringrazio ... ho follow-up domanda allora mi Immagino ... l'ordine degli array è importante, giusto? Quindi, se voglio minimizzare tutto prima che il broswersync si ricarichi dovrei provare solo il browsersync alla fine dell'array? o no? lol –

+0

Sì, è corretto :) ma è necessario rendersi conto che le attività di Gulp sono asincrone in natura, quindi vorrei creare una funzione e chiamare i gestori in modo sincrono! –

1

Gulp watch restituisce sempre un EventEmitter che emette eventi di modifica, quindi la chiamata gulp.watch('app/*.html').on('change', browserSync.reload) può essere scritta come:

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

watch funzione può essere richiamata con le seguenti params: gulp.watch(glob [, opts], tasks) o gulp.watch(glob [, opts, cb]).

Quindi è possibile utilizzare entrambe le varianti, ma è preferibile il metodo più breve.

Problemi correlati