如何使gulp同时写入所有文件?

时间:2019-03-09 10:30:41

标签: gulp pug-loader

我有一个吞吞吐吐的任务,可以完成我所有的哈巴狗模板(包括):

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

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

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

P.S。我使用https://github.com/tapio/live-server进行实时重新加载。

1 个答案:

答案 0 :(得分: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'));
});

现在一切正常。