gulp-bird
起源
- 起源于bird,但是名字有点误导,并不是一个gulp插件,在bird基础上进行了一些优化并发布到了npm,配置方法和bird一样
功能介绍
基本功能:本地联调解决跨域问题
本地webserver优先寻找对应的本地资源, 如果没找到则会走转发规则,转发规则也没找到才会返回404.
这样假设你有这样一个项目:
本地有如下文件
project
--- index.html
--- list.json
targetServer上有如下文件
targetServer
--- detail.html
--- detail.json
以peoject目录作为basePath,启动bird server,那么访问localhost:8008/index.html
就会加载本地的index.html页面, 访问localhost:8008/detail.html
就会加载服务端的页面,ajax请求list.json
,返回的是本地的list.json
, 请求detail.json
,则返回服务器上的detail.json
。
这样就通过代理服务器绕过了跨域限制。
联调需要身份校验的接口:
在targetServer中配置身份校验信息,则可以帮助我们联调一些需要身份验证的接口
"headers": {
"cookie": "xplatform_ge=4ffcc236a075c3e1f5068f172f654bbe9a1f23adc1563138c432b72b0d06261a153cc6f5a40"
}
特殊规则
可以通过配置规则,走一些特殊的转发规则,请参见下面的使用手册。
使用手册
1、创建一个config.js文件(名称任意)
var bird = require('gulp-bird');
var server = {
"8008": {
"basePath": "/Users/baidu/Desktop/frontEnd/Baidu/Hi-new-backend/src",
"debug": true,
"ignoreRegExp": /\/js\/urls\.js/g
}
};
var transpondRules = {
"8008": {
targetServer: {
"port": "8274",
"host": "cp01-hiserver-sandbox1-tc.cp01.baidu.com",
"replaceHeaders": true,
"headers": {
"cookie": "xplatform_ge=4ffcc236a075c3e1f5068f172f654bbe9a1f23adc1563138c432b72b0d06261a153cc6f5a40"
}
},
regExpPath: {
"/hrlms/rs": {
"path": "/hrlms/rs"
}
}
},
"ajaxOnly": false
};
var toolsConf = {
weinre: {
open: true,
port: 9001
},
showTools: true
};
bird.start(server, transpondRules, toolsConf);
2、用node执行它
node config.js
如何开发和贡献代码
npm install
node app.js
然后访问localhost:7676
查看效果