一键轻松设置项目代理「建议收藏」

引言相信各位开发同学对设置项目代理接触得非常之多:新同事接手老项目时,需要从文档中找到代理规则或者询问熟悉的同事后再设置代理;在不同项目间切换时,需要在自己设置的不同规则间进行手动切换;代码执行结果与预期不同,debug许久发现是因为代理规则设置有问题;同一个项目,团队内不同的人设置的代理规则五花八门,差异不小;…本应专注于项目的开发,却在配置代理上浪费时间,耗费精力!为…

大家好,又见面了,我是你们的朋友全栈君。

引言

相信各位开发同学对设置项目代理接触得非常之多:

  • 新同事接手老项目时,需要从文档中找到代理规则或者询问熟悉的同事后再设置代理;
  • 在不同项目间切换时,需要在自己设置的不同规则间进行手动切换;
  • 代码执行结果与预期不同,debug 许久发现是因为代理规则设置有问题;
  • 同一个项目,团队内不同的人设置的代理规则五花八门,差异不小;

本应专注于项目的开发,却在配置代理上浪费时间,耗费精力!

为了解决这个问题,whistle 1.12 版本带来了新功能,只需一键即可轻松设置项目代理。

本文假设已安装 whistle(基于 node.js 的代理工具),若未安装,请参考 安装指引

一键设置代理

对于已接入的项目(接入方法),开发者只需要通过 w2 add 即可配置项目代理,从而着手于项目开发:

  1. 在项目根目录下执行 w2 add 设置项目代理规则
  2. 将浏览器代理设置为 whistle 监听地址 127.0.0.1:8899(若已设置可以跳过此步)
  3. 打开项目连接检查代理是否设置成功。

w2 add [filepath] 命令中 filepath 为规则配置文件的路径,可选参数,默认为当前目录的 .whistle.js 文件。

接入方法

在项目根目录下新建 .whistle.js 文件,用 webpack 构建的项目可简单配置如下:

exports.name = '【本地环境】react-project';
exports.rules = ` ke.qq.com/react-project http://localhost:7474 ke.qq.com/cgi-bin ignore://http # CGI 走线网,不进行代理 `;
复制代码

.whistle.js 文件的导出需满足:

{
    name, // string 类型,显示在 whistle GUI 界面的规则名
    rules, // string 类型,项目代理规则
}
复制代码

在该目录下执行命令 w2 add 时,如果本地 whistle 里没有同名规则则会创建一个并自动启用,如果存在则会提醒:

The rule already exists, to override it, you must add CLI option --force.
复制代码

可以通过 w2 add --force 强制覆盖当前同名规则。

上述介绍的接入方法是将不同项目的代理规则放置于各自代码的根目录下,也可以将不同项目的代理规则进行线上集中管理,然后通过 .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, // 异步拉取的项目代理规则
    });
  });
};
复制代码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129129.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat导入sql文件报错_navicat怎么导入sql数据库文件

    navicat导入sql文件报错_navicat怎么导入sql数据库文件一、打开navicat,打开连接,右击连接名(如果新建连接,需要使用对应数据库的ip地址和密码,本机的是地址localhost,密码是自己mysql数据库的密码),选择新建数据库,数据库名要和想要导入的文件名一样(这种情况针对的是sql文件是直接由整个数据库导出的一个sql文件,如果表导出的sql文件,应该是随便命名数据库的名字,表名应该是和需要导入的文件名字相同(第二种情况没有亲自试过))。…

    2022年10月2日
    0
  • linux下显卡信息的查看

    linux下显卡信息的查看

    2022年3月12日
    96
  • ASMM

    ASMMSGA_MAX_SIZE:staticparameterTouseASMM,needtwoparameters:1.SGA_TARGETnotnullorzero;2.STATISTICS_L…

    2022年6月8日
    72
  • opencv的sift_opencv sift

    opencv的sift_opencv sift《SIFT原理与源码分析》系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548尺度空间理论自然界中的物体随着观测尺度不同有不同的表现形态。例如我们形容建筑物用“米”,观测分子、原子等用“纳米”。更形象的例子比如Google地图,滑动鼠标轮可以改变观测地图的尺度,看到的地图绘制也不同;还有电影中的拉伸镜头等等…

    2022年10月15日
    1
  • CSS基础笔记——超链接样式

    CSS基础笔记——超链接样式在浏览器中,超链接默认情况下字体为蓝色,带有下划线,鼠标单击时字体为红色,单击后为紫色而在CSS中,我们可以使用超链接伪类来定义超链接在鼠标单击的不同时期的样式a:link{…}a:visited{…}a:hover{…}a:active{…}定义四个伪类,必须按照link、visited、hover、active的顺序进行,不然浏览器可能无法正常显示这四种样式<!DOCTYPEhtml><html><head&gt

    2022年7月19日
    10
  • Vim 3 vimrc[通俗易懂]

    Vim 3 vimrc[通俗易懂]文章目录什么是vimrc基本修改UI相关配置编码相关配置文件相关配置编辑器相关配置按键映射“键我的vimrc小结什么是vimrcvimrc是Vim的配置文件,Vim在启动时会加载vimrc文件,你能想到的几乎所有的配置(包括主题,快捷键,插件设置等等),都可以配置在vimrc中,所以,vimrc在Vim使用过程中有着至关重要的地位.Vim是极…

    2022年5月18日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号