我想使用gulp-connect的所有请求转发给api/到localhost:3000.我在https://github.com/AveVlad/gulp-connect/issues/27上找到了一个例子
并设置我的连接任务,如下所示:
gulp.task('connect', function(){
connect.server({
root: './app',
middleware: function(connect, o) {
return [ (function() {
var url = require('url');
var proxy = require('proxy-middleware');
var options = url.parse('http://localhost:3000/api');
options.route = 'api';
return proxy(options);
})()]
}
});
});
Run Code Online (Sandbox Code Playgroud)
运行此任务会发出警告,connect deprecated connect(middleware): use app.use(middleware) instead node_modules/gulp-connect/index.js:39:19此任务不会按预期转发请求.
我查看了connect源代码,看看我是否可以解决折旧问题,但它超出了我在js中的水平:
ConnectApp.prototype.server = function() {
var app, middleware;
middleware = this.middleware();
app = connect.apply(null, middleware);
server = http.createServer(app);
app.use(connect.directory(typeof opt.root === "object" ? opt.root[0] : opt.root));
server.listen(opt.port);
this.log("Server started http://" + opt.host + ":" + opt.port);
if (opt.livereload) {
tiny_lr.Server.prototype.error = function() {};
lr = tiny_lr();
lr.listen(opt.livereload.port);
return this.log("LiveReload started on port " + opt.livereload.port);
}
};
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何更改我要使用的gulp文件app.use(middleware),app连接模块不会导出该变量.
Bla*_*kus 24
chimurai在Github上给出的解决方案是使用http-proxy-middleware包来做到这一点.
例如 :
var gulp = require('gulp');
var connect = require('gulp-connect');
var proxy = require('http-proxy-middleware');
gulp.task('connect', function() {
connect.server({
root: ['./app'],
middleware: function(connect, opt) {
return [
proxy('/api', {
target: 'http://localhost:3000',
changeOrigin:true
})
]
}
});
});
gulp.task('default', ['connect']);
Run Code Online (Sandbox Code Playgroud)
即使使用github源代码,我也无法使中间件正常工作.我确实得到了相同的结果modrewrite
var modRewrite = require('connect-modrewrite');
gulp.task('connect', function() {
connect.server({
root: './app',
port: 8000,
middleware: function() {
return [
modRewrite([
'^/api/(.*)$ http://localhost:3000/api/v1/$1 [P]'
])
];
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是一个报告的问题,应该在 NPM 上的下一个 gulp-connect 版本中修复:
https://github.com/AveVlad/gulp-connect/commit/9bd7da765d6763bbee566cc5fc03b873ccf93e37 https://github.com/AveVlad/gulp-connect/issues/67
| 归档时间: |
|
| 查看次数: |
25648 次 |
| 最近记录: |