我正在尝试使用gulp与gulp-webserver一起为量角器测试提供一些静态内容。 对于所有以'/ mocks'开头的路由,我想从基本路径测试/模拟服务(这是构建服务器的设置方式 - 我无法改变它。)
经过多次试验和错误后,我得到了一个如下所示的配置:
gulp.task('serve-e2e', ['build-dev'], function() {
gulp.src('app').pipe(webserver({
port: 9001,
middleware: [
{route: '/mocks', handle: serveStatic('test/mocks')}
]
}));
});
然而,对于以/ mocks开头的所有内容,仍然会给我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();
}
}
}
我确信有更好的方法可以做到这一点,但我很难过。有人能帮助我吗?
答案 0 :(得分:0)
因此,原始路由似乎包含在上述代码下导致test/mocks/mocks
的路径中。
虽然仍然需要添加getStatic
方法(gulp-webserver不会将对象转发到连接 - 如果对象包含键'route'和'handle',这将是一个选项),当我把它改成
getStatic({route: /^\/mocks/, handle: serveStatic('test')})