为什么browsersync不重新加载页面

时间:2016-04-22 13:22:28

标签: javascript gulp browser-sync loopback

问题在于流重新加载页面 只需重新加载方法正常工作

但是,当我使用browserSync.stream()(browserSync.reload({stream:true}))时,它无法正常工作

这是我的浏览器同步初始化功能

function browserSyncInit(baseDir, browser) {
  browser = browser === undefined ? 'default' : browser;

  var routes = null;
  if(baseDir === conf.paths.src || (util.isArray(baseDir) && baseDir.indexOf(conf.paths.src) !== -1)) {
    routes = {
      '/bower_components': 'bower_components'
    };
  }

  var server = {
    baseDir: baseDir,
    routes: routes,
    middleware: proxyMiddleware('http://0.0.0.0:8080')
  };

  var nodemonConfig = {
    cwd: path.normalize(__dirname + '/../../'),
    script: 'server/server.js',
    ext: 'js json',
    ignore: ['client/**/*.*'],
    env: {'PORT': '8080'}
  };
  var serverStarted;

  nodemon(nodemonConfig)
    .on('start', function () {
      if (serverStarted) return;

      browserSync.init(null, {
        startPath: '/',
        open: false,
        server: server,
        browser: browser
      });
      serverStarted = true;
    });
}

代理服务器它是环回应用程序(可能有问题)

重新加载样式和描述的任务

gulp.task('styles-reload', ['styles'], function() {
  return buildStyles()
    .pipe(browserSync.stream());
});


gulp.task('scripts-reload', ['scripts'], function() {
  return buildScripts()
    .pipe(browserSync.stream());
});

1 个答案:

答案 0 :(得分:0)

Streams用于从任务的Gulp流中注入脚本/ css / etc.,这就是为什么在the documentation中,它提到将它放在gulp.dest之后。

如果您希望手动重新加载BrowserSync页面,可以在两个函数中使用.reload执行此操作,否则,您需要将文件传递到重新加载任务中,因为它看起来像是你的从其他地方调用这些任务。

除此之外,我没有理由将两个任务(样式/脚本与其各自的重载任务分开)分开。你应该在dest之后管道它,这样你就不必乱用新的流或在任务之间合并。