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

引言相信各位开发同学对设置项目代理接触得非常之多:新同事接手老项目时,需要从文档中找到代理规则或者询问熟悉的同事后再设置代理;在不同项目间切换时,需要在自己设置的不同规则间进行手动切换;代码执行结果与预期不同,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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python lambda表达式详解

    python lambda表达式详解@pythonlambda表达式详解1、lambda简介先来看一段代码示例:第一行是lambda声明,x,y相当于传入的参数,整个函数会返回x+y的值。lambda作为一个表达式,定义了一个匿名函数,上例的代码x,y为入口参数,x+y为函数体。在这里lambda简化了函数定义的书写形式。python允许用lambda关键字创造匿名函数。匿名是不需要以标准的方式来声明,比如说使用def…

    2022年10月18日
  • 用iptable防止ddos「建议收藏」

    用iptable防止ddos「建议收藏」DDoSdeflate是一款Linux/centos减轻/防止ddos攻击的一个小程序,相当于软件防火墙。注意,此程序仅仅能抵御较低流量的攻击,大流量攻击连用了上百台高档服务器做了负载均衡的新浪都扛不住,何况一个小小的普通服务器或vps。对此程序不要期望过高。这里仅仅介绍一下,对于一些简单的软件攻击可能还有点作用。CTOHOM制作的DDoSdeflate一键安装脚本:wge…

    2022年5月27日
  • Python 如何理解又晕又好用的装饰器

    Python 如何理解又晕又好用的装饰器

    2021年9月17日
  • 使用instsrv和srvany注册windows系统服务

    使用instsrv和srvany注册windows系统服务1、下载配置instsrv和srvany下载地址:https://dl.pconline.com.cn/download/558946.html根据电脑属性复制文件:32位操作系统:将两个文件放入C:\Windows\System32文件夹下即可64位操作系统:除放入System32文件夹下,还需放入C:\Windows\SysWOW64文件夹下2、jar包和bat运行文件在同一目录下3、追加服务win+r打开运行窗口、输入cmd进入DOS窗口执行命令:instsrvr

    2022年6月14日
  • XCL-Charts图表库中柱形图的同源风格切换介绍

    XCL-Charts图表库中柱形图的同源风格切换介绍

    2021年12月5日
  • java之数组和链表的区别「建议收藏」

    java之数组和链表的区别「建议收藏」数组是有下标索引和data两部分组成链表是有data和指向下一个数据的指针地址两部分组成数组的特点 在内存中,数组是一块连续的区域。拿上面的看电影来说,这几个人在电影院必须坐在一起。 数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。比如看电影时,为了保证10个人能坐在一起,必须提前订好10个连续的位置。这样的好处就是能保证10个人可以在一起。但是这样的缺…

    2022年6月25日

发表回复

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

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