如何使用gulp-webserver代理属性?

时间:2016-03-31 10:26:58

标签: javascript server gulp proxy-server

我对gulp-webserver包的代理有一点了解。
我需要代理我的localhost 8080,以便从外部访问它。但是我不太明白如何使用gulp-webserver proxies属性来实现它 在这里,我有一段代码:

gulp.task('server', function(){
    gulp.src('dist')
        .pipe(webserver({
            livereload: true,
            open:true,
            port:8080,
            proxies:[
                {
                    source:'/hello', 
                    target:'http://localhost:8080/hello'
                }
            ]
        }));
});
  1. 所以这样的代理必须通过在任何浏览器中输入地址http://localhost:8080/hello来提供访问权限?
  2. 这个“代理”使用的原因是什么?
  3. 如何通过gulp从外部访问本地主机?

1 个答案:

答案 0 :(得分:0)

回答你们中的一个问题,你应该了解其余的问题。

在此开发环境中使用代理设置是绕过CORS(google it)。您的ajax呼叫不能简单地拨打另一个域/服务器地址;实际上你可以,但你的浏览器安全策略会阻止你这样做,有办法解决它。而你正在发展。您很可能拥有http://localhost域名。而实际的终点就是坐在其他地方。

例如在你的ajax调用中

$http.post('/api', data);

您实际上正在拨打http://localhost/api

哪个不存在(除非你有一个完整的后端运行)。例如,您有一个真正的后端从http://real.com/api运行。通过设置gulp设置代理。

无论何时指向/ api,它都会转到http://real.com/api为您提取数据。

如果要访问本地计算机外部的开发。您所要做的就是将gulp-webserver host设置为0.0.0.0,然后从外部找到您的机器地址(例如192.168.0.1)

在其他计算机上的浏览器中输入http://192.168.0.1:3000(3000是port的属性),您应该可以看到本地计算机提供内容。