У меня есть сайт Jekyll, который является частью проекта Gulp, используя BrowserSync для предварительного просмотра сайта по мере его создания. Один из моих операторов watch
ищет изменения для html
, чтобы автоматически обновлять сайт.Перезагрузка BrowserSync только один раз при использовании Jekyll in Gulp при обновлении общего файла
gulp.watch('docs/_site/**/*.html').on('change', browserSync.reload);
Работы, как конструировано.
Однако, когда я обновляю header.html
(или любой другой общий файл) браузер обновляется множественными раз, потому что все страниц изменились. Это имеет смысл, поскольку все статические страницы обновляются. Но я хотел бы предотвратить это при обновлении общего файла.
Есть ли способ, который я могу сказать Gulp/BrowserSync, чтобы обновлять только один раз, когда обновляется общий файл Jekyll?
UPDATE
Мои часы набор выглядит следующим образом:
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'});
});
Привет, Дэвид. Я не запускаю «jekyll serve», это просто сайт, основанный на Jekyll (моя формулировка, возможно, вводит в заблуждение). Gulp обрабатывает все компиляции (через процесс «build»), и сайт обслуживается (во время dev) браузером BrowserSync. –
И как происходят изменения в _site? смотреть -> jekyll build? Можем ли мы увидеть ваш код? –
Я обновил свой вопрос с помощью задач 'watch' и' build'. Спасибо! –