gulp Web服务器使用中间件提供静态文件

gulp Web服务器使用中间件提供静态文件,gulp,middleware,e2e-testing,Gulp,Middleware,E2e Testing,我正在尝试使用gulp和gulpwebserver为量角器测试提供一些静态内容。 对于所有以“/mocks”开头的路由,我希望从基本路径test/mocks提供服务(这是构建服务器的设置方式-我无法更改) 经过反复试验,我得到了如下配置: gulp.task('serve-e2e', ['build-dev'], function() { gulp.src('app').pipe(webserver({ port: 9001, middleware: [ {rou

我正在尝试使用gulp和gulpwebserver为量角器测试提供一些静态内容。 对于所有以“/mocks”开头的路由,我希望从基本路径test/mocks提供服务(这是构建服务器的设置方式-我无法更改)

经过反复试验,我得到了如下配置:

gulp.task('serve-e2e', ['build-dev'], function() {
  gulp.src('app').pipe(webserver({
    port: 9001,
    middleware: [
      {route: '/mocks', handle: serveStatic('test/mocks')}
    ]
  }));
});
但是,对于以/mock开头的所有内容,这仍然会给我带来404个错误(我已经验证了文件夹的位置-没有错误)

我甚至尝试过这样做——查看gulp webserver中的代码,中间件只接受函数——仍然没有效果:

gulp.task('serve-e2e', ['build-dev'], function() {
  gulp.src('app').pipe(webserver({
    port: 9001,
    middleware: [
      getStatic({route: /^\/mocks/, handle: serveStatic('test/mocks')})
    ]  
  })
);

function getStatic(opts) {
  return function(req, res, next) {
    if (parseurl(req).pathname.match(opts.route)) {
      return opts.handle(req, res, next);
    } else {
      return next();
    }
  }
}

我肯定有更好的办法,但我被难倒了。有人能帮我吗?

因此,在上述代码下,原始路由似乎包含在路径中,这将导致
测试/mocks/mocks

虽然仍然需要添加
getStatic
方法(gulp webserver不转发要连接的对象-如果对象包含键“route”和“handle”,这将是一个选项),但当我将其更改为

getStatic({route: /^\/mocks/, handle: serveStatic('test')})

因此,原始路由似乎包含在路径中,根据上述代码,路径将导致
test/mocks/mocks

虽然仍然需要添加
getStatic
方法(gulp webserver不转发要连接的对象-如果对象包含键“route”和“handle”,这将是一个选项),但当我将其更改为

getStatic({route: /^\/mocks/, handle: serveStatic('test')})