我有一个 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'});
});