У меня есть сайт Jekyll, который является частью проекта Gulp, и я использую BrowserSync для предварительного просмотра сайта по мере его создания. Один из моих операторов watch
ищет изменения в html
для автоматического обновления сайта.
gulp.watch('docs/_site/**/*.html').on('change', browserSync.reload);
Работает как задумано.
Однако, когда я обновляю header.html
(или любой другой общий файл), браузер обновляется несколько раз, потому что все страницы изменились. Это имеет смысл, так как все статические страницы обновляются. Но я хотел бы предотвратить это при обновлении общего файла.
Есть ли способ сказать Gulp/BrowserSync, чтобы он обновлялся только один раз при обновлении общего файла Jekyll?
ОБНОВЛЕНИЕ
Мой набор часов выглядит следующим образом:
gulp.task('dev:watch', ['browserSync', 'docs:sass', 'docs:lib', 'docs:build'], function () {
gulp.watch(['scss/**/*.scss', 'docs/assets/**/*.scss'], ['dev:sass']);
gulp.watch(['docs/**/*.html', 'docs/**/*.md', '!docs/_site/**'], ['docs:build']);
gulp.watch('docs/_site/**/*.html').on('change', browserSync.reload);
});
Задача docs:build
:
gulp.task('docs:build', function () {
browserSync.notify('Building Jekyll');
return spawn('jekyll', ['build', '--config', '_config.yml,_config_dev.yml', '--incremental'], {stdio: 'inherit'});
});