相信各位开发同窗对设置项目代理接触得很是之多:javascript
本应专一于项目的开发,却在配置代理上浪费时间,耗费精力!java
为了解决这个问题,whistle 1.12 版本带来了新功能,只需一键便可轻松设置项目代理。node
本文假设已安装 whistle(基于 node.js 的代理工具),若未安装,请参考 安装指引。react
对于已接入的项目(接入方法),开发者只须要经过 w2 add
便可配置项目代理,从而着手于项目开发:webpack
w2 add
设置项目代理规则127.0.0.1:8899
(若已设置能够跳过此步)
w2 add [filepath]
命令中filepath
为规则配置文件的路径,可选参数,默认为当前目录的.whistle.js
文件。git
在项目根目录下新建 .whistle.js
文件,用 webpack 构建的项目可简单配置以下:github
exports.name = '【本地环境】react-project';
exports.rules = ` ke.qq.com/react-project http://localhost:7474 ke.qq.com/cgi-bin ignore://http # CGI 走线网,不进行代理 `;
复制代码
.whistle.js
文件的导出需知足:web
{
name, // string 类型,显示在 whistle GUI 界面的规则名
rules, // string 类型,项目代理规则
}
复制代码
在该目录下执行命令 w2 add
时,若是本地 whistle 里没有同名规则则会建立一个并自动启用,若是存在则会提醒:npm
The rule already exists, to override it, you must add CLI option --force.
复制代码
能够经过 w2 add --force
强制覆盖当前同名规则。json
上述介绍的接入方法是将不一样项目的代理规则放置于各自代码的根目录下,也能够将不一样项目的代理规则进行线上集中管理,而后经过 .whistle.js
发送网络请求异步获取:
const assert = require('assert);
const pkg = require('./package.json');
module.exports = (cb, util) => {
// 若是依赖插件,能够检查插件
assert(util.existsPlugin('whistle.combo'), '请先安装插件npm i -g whisltle.combo');
// 异步获取远程规则
request('http://example.com/proxy-rules?name=awosome-project').then((result) => {
cb({
name: '【本地环境】awosome-project',
rules: result.rules, // 异步拉取的项目代理规则
});
});
};
复制代码