Gulp + BrowserSync,服务于路径

Mar*_*erg 11 gulp browser-sync

我正在使用Gulp和BrowserSync来为我的webapp服务localhost:9000.
我该如何服务于webapp localhost:9000/some/multi/level/path呢?

joe*_*ler 6

可以将Browsersync的静态服务器配置为提供来自任意子路径的页面的服务。初始化Browsersync的静态服务器时,添加一个路由定义,其中的键是要匹配的url片段,值是要提供服务的目录(路径应相对于当前工作目录)。

尝试这样的事情:

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

gulp.task('watch', function() {
  browsersync.init({
    files: './*.html',
    startPath: '/some/multi/level/path',
    server: {
      baseDir: '-',
      routes: {
        '/some/multi/level/path': '.'
      }
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

运行gulp watch将启动Browsersync并打开一个页面,其中./显示的内容位于url http://localhost:3000/some/multi/level/path

baseDir必须设置为非空字符串,并且不必是有效路径。Falsey值(nullfalse和空字符串)将无法正常工作。

上面的代码段是一个可用的gulp文件,并已针对Browsersync v2.18.5和gulp v3.9.1进行了测试。这是完整的要点


小智 2

在浏览器中传递同步选项,startPath使其以“/”以外的不同 URL 开始。

这不会改变您的服务器所提供的服务,仅改变 BrowserSync 的启动路径。

http://www.browsersync.io/docs/options/#option-startPath