2016-04-08 54 views
7

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

ve bu işleri benim şimdiki izleme listesi ise en iyi uygulamayı izlemek.

ama takip ediyorum bir öğretici biraz farklı bir şey vardır:

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

ben .sistem ('change', browserSync.reload) gerekiyor? işe yarıyor; Yaptığım şeyin iyi bir uygulama olmadığını merak ediyorum. Teşekkürler!

cevap

1

Hayır, özel on('change') eklemeniz gerekmez. İzleyiciyi eğitici gibi başlatırken olay işleyicisini geçmelisiniz. Aksi taktirde, gulp'a varsayılan olarak değişiklik yapma konusunda hiçbir şey yapmamaya benziyor, sonra dinleyicinizi daha sonra ekleyeceksiniz.

diğer avantajı teşekkür ederim, sizin işleyicileri yerine gördüğüm

+0

on('change', task1Function).on('change', task2Function) zincirleme kendilerini gulp.watch(..., ['task1', 'task2']) görevleri Yutkunuyorum eğer bir dizi olarak tek seferde birden çok olay işleyicileri geçebilir olduğunu ... i sonra ben soru takip var Tahmin edelim ... dizinin sırası önemli değil mi? Yani eğer broswersync yeniden yüklemeden önce her şeyi küçültmek istersem, probun sonunda tarayıcım var mı? ya da hayır? lol –

+0

Evet bu doğru :) ama o zaman gulp görevlerinin doğada uyumsuz olduğunu fark etmelisin, bu yüzden bir işlev yerine getireceğim ve işleyicilerinizi eşzamanlı olarak arayacağım! –

1

Gulp watch daima değişim olayları yayan bir EventEmitter döndürür, bu nedenle çağrı gulp.watch('app/*.html').on('change', browserSync.reload) yazılabilir:

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

watch işlevi, aşağıdaki parametreleri içeren çağrılabilir: gulp.watch(glob [, opts], tasks) veya gulp.watch(glob [, opts, cb]).

Her iki varyantı da kullanabilirsiniz, ancak daha kısa olan yöntem tercih edilir.