1

我有一个 gulp 任务,可以构建我所有的哈巴狗模板(包含):

gulp.task('processMarkup', function(){
    return gulp.src('src/*.pug')
        .pipe(pug())
        .pipe(gulp.dest('./dist/'));
});

我也有一个运行这个任务的观察者:

gulp.task('watch-markup',function(){
    gulp.watch(['./src/**/*.pug'], gulp.series('processMarkup'));
});

目前,我的内部有 5 个哈巴狗模板src/,每次当哈巴狗将文件写入dist/(通常需要 2-5 秒)时,我的实时重新加载会观察到dist/触发浏览器重新加载,因此我需要观察 5 次浏览器重新加载。

我认为如果同时保存所有文件,则可以防止这种情况发生。如何实现?(或者如果你有更好的解决方案建议他们)。

PS Live Reload 我使用https://github.com/tapio/live-server

4

1 回答 1

0

根据@Sean 的评论,我做了这个配置:

let gulp = require('gulp');
let pug = require('gulp-pug');
let browserSync = require('browser-sync');

gulp.task('reload', function(done) {
  browserSync.reload();
  done();
});

gulp.task('processMarkup', function() {
  return gulp.src('src/*.pug')
    .pipe(pug())
    .pipe(gulp.dest('./dist/'));
});

gulp.task('serve', function() {
  browserSync.init({
    server: './dist/'
  });
  gulp.watch(['./src/**/*.pug'], gulp.series('processMarkup', 'reload'));
});

现在一切正常。

于 2019-03-10T10:30:09.033 回答