node.js - 完成前浏览器同步与刷新

标签 node.js gulp browser-sync

我在 gulp 中进行 browsersync,设置如下。问题是,当代码更改时,browsersync 会识别并刷新页面。不过,它不会等待脚本文件进入gulp.dest,所以一般会自动刷新,找不到脚本文件,然后再次刷新,它就在那里。

有没有办法确保它会等待任务完全完成?

var browserSync = require('browser-sync').create();

gulp.task('cleanScripts', function () {
  return gulp.src('./assets/js', {read: false})
             .pipe(clean());
});

gulp.task('scripts', ['cleanScripts'], function() {
    return browserify('./client/js/main.js')
      .bundle()
      .on('error', function (e) {
          gutil.log(e);
      })
      .pipe(source('main-' + packageJson.version + '.js'))
      .pipe(buffer())
      .pipe(uglify())
      .pipe(gulp.dest('./assets/js'));
});

//Watch our changes
gulp.task('watch', function () {
   browserSync.init({
     proxy: "localhost:3000"
  });
  gulp.watch(['./client/js/**/*.js', ['scripts']).on('change', browserSync.reload);
});

最佳答案

BrowserSync 有选项 reloadDelay可以在 gulpfile.js 中设置

Time, in milliseconds, to wait before instructing the browser to reload/inject following a file change event

gulp.task('browserSync', function() {
    browserSync.init({
        server: {
            baseDir: 'app'
        },
        reloadDelay: 100
    });
});

关于node.js - 完成前浏览器同步与刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36138031/

相关文章:

node.js - 尽管捕获了 Angular 2 中的错误,但仍收到 400 Bad Request

javascript - Node.js:forEach 箭头语句剧

javascript - broswerSnyc 无法在多个设备上运行

javascript - gzip 编码 javascript 由本地节点服务器与浏览器同步提供服务

npm - 错误 : Cannot find module 'browser-sync'

javascript - 如何使用Node-red-dashboard模板 Node 发送功能?

javascript - koa.js 注册后返回 404 "Not Found",而不是来自 ctx.body 的 token

gulp-postcss : conditional options (optimizations)

javascript - 如何忽略 StandardJS/ESLint 中的规则?

javascript - 计算的属性名称。 "gulp-angular-filesort : unexpected token ["