使用gulp-webserver与代理和中间件

时间:2015-06-25 10:15:44

标签: angularjs proxy

我正在尝试让gulp-webserver使用代理和中间件。

我的角应用程序应该在端口3000上使用gulp-webserver运行 我的Laravel后端使用URL运行apache:“http://backend.api/api/v1

现在我想将我的角度应用程序中的所有请求重定向/代理,该应用以'/ api'开头到'backend.api / api /'

示例:对于ajax的角度为url:'/ api / v1 / users'应该转到'backend.api / api / v1 / users'并从那里获取它的json数据。

sry在backend.api url前面缺少http - 但是stackoverflow不允许我在一个帖子中有超过2个链接。

我已经尝试了几个小时才能让它与gulp-webserver一起工作 在gulp-connect上,它正在使用此设置:

gulp.task('webserver', function () {
    plugins.connect.server({
        root: paths.distDevelopFolder,
        port: 3000,
        middleware: function (connect, o) {
            return [(function () {
                var url = require('url');
                var proxy = require('proxy-middleware');
                var options = url.parse('http://backend.api/api');
                options.route = '/api';
                return proxy(options);
            })(), historyApiFallback];
        }
    });
});

2 个答案:

答案 0 :(得分:5)

我正在使用这样的gulp-webserver:

var webserver = require("gulp-webserver")    
gulp.task('webserver', function(){
    return gulp
        .src([paths.distDevelopFolder])
        .pipe(webserver({
            port: 3000,
            livereload: true,
            open: 'http://localhost:3000',
            proxies: [
                {
                    source: '/api', target: 'http://backend.api/api'
                }
            ]
        }));
    });

答案 1 :(得分:0)

你可以试试这个发电机:

https://www.npmjs.com/package/generator-angular-proxy

它正是您所需要的(指定一些代理到远程后端的URL)并模拟其余的。