引言

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

  • 新同事接手老项目时,需要从文档中找到代理规则或者询问熟悉的同事后再设置代理;
  • 在不同项目间切换时,需要在自己设置的不同规则间进行手动切换;
  • 代码执行结果与预期不同,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:7474ke.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, // 异步拉取的项目代理规则});});
};
复制代码

一键轻松设置项目代理相关推荐

  1. WiFi共享精灵 - 不需路由器一键轻松把网线共享给手机、笔记本等同时无线上网...

    现在人们身边手机.游戏机等各种使用WiFi上网的设备已经越来越多,但经常遇到一些地方只有有线网络,或者没有无线路由器的情况,这时,用笔记本上网,然后把网络通过WiFi共享给其他设备上网那么就最合适了. ...

  2. WiFi共享精灵 - 不需路由器一键轻松把网线共享给手机、笔记本等同时无线上网_我是亲民_新浪博客...

    现在人们身边手机.游戏机等各种使用WiFi上网的设备已经越来越多,但经常遇到一些地方只有有线网络,或者没有无线路由器的情况,这时,用笔记本上网,然后把网络通过WiFi共享给其他设备上网那么就最合适了. ...

  3. 火眼金睛审核 一键轻松处理

    火眼金睛审核 一键轻松处理<?xml:namespace prefix = o /> --学籍助手简介 学籍助手是专为河北省义务教育学籍管理系统区县端开发的一款辅助工具(图).该工具不影响 ...

  4. 神器降临 Chainfire3D玩转Android平台专属游戏,一键轻松跨平台进行游戏!

    2011年末,各大手机游戏厂商争先恐后的为我们带来绝世大作.在大趋势下,越来越多的用户也投身手机游戏圈中.笔者身边经常有安卓迷们抱怨称 iPhone的游戏体验更加出色.其实不然,一直以来,知名游戏开发 ...

  5. 计算机职称分类汇总,职称计算机考试:数据分类汇总,一键轻松搞定

    对于大型的数据表要进行分类汇总,以前我采用"自动筛选"的办法来实现的,但这样既麻烦,又容易出现错误.经过摸索,发现用"宏"可以实现批量筛选和打印,一键搞定了分类 ...

  6. 微信提示发送视频不能超过25M!这2个简单方法,一键轻松发送

    相信大家每天都会使用微信聊天,并且肯定都会有这样一个经历!那就是分享视频给好友时,微信突然提示你发送的视频不能超过25M. 但是这个视频又非发送不可,那怎么办呢?笔者这里分享2个办法,只需简单设置一下 ...

  7. 转:Eclipse自动补全功能轻松设置

    Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件 2012-03-08 21:29:02|  分类: Java |  标签:eclipse  自动补全  设置  |举报|字号 订阅 下 ...

  8. win32api.sendmessage模拟鼠标点击_安卓模拟器一键宏设置教程

    一.什么是一键宏 一键宏是指宏指令,主要作用是一键触发多个点击事件:游戏玩家可以用来设置一键连招,一键发言等功能:因此成为一键宏. 二.如何设置一键宏 打开雷电模拟器,点击右侧栏按键按钮,找到&quo ...

  9. cmfclistctrl怎么设置某列文字颜色_ppt实用技巧:如何轻松设置合意的超链接

    在使用PPT演讲的过程中,你是不是还在手动一张一张的切换幻灯片?在为文本设置好超链接之后,你是不是依然不知道怎样删除下划线而烦恼,加班熬夜? 其实,这些都不是问题,只需要轻松设置一下超链接就轻而易举的 ...

最新文章

  1. 计算机显示网络地址,u盘装系统win7打开电脑显示正在获取网络地址怎么处理
  2. 在c#中实现类似C语言中的memset功能
  3. 为什么log4j的概念模型是错的--zlog的模型简介
  4. 结构型模式—享元模式
  5. python json模块 超级详解
  6. 一个SAP顾问2018年的回顾
  7. nginx 不带www到www域名的重定向
  8. @param注解的用法解析_SpringBoot 配置类解析
  9. 小白来学C语言之宏定义(#define)
  10. mysql赋予权限的时候报错_想要远程连接MySQL,赋予root权限没用啊?一直报语法错误...
  11. 7-35 混合类型数据格式化输入 (5 分)
  12. OpenCV-图像处理(13、图像上采样和降采样)
  13. 微软亚洲研究院多模态模型NÜWA:以自然语言创造视觉内容
  14. html圣诞效果,HTML5实现圣诞树效果
  15. 学术界AV1编码优化技术的进展
  16. 文化 宝藏 文物 古文
  17. 【CSS】绘制一个任意角度的扇形
  18. 网易2016实习研发笔试
  19. html点击按钮弹出悬浮窗_点击文字或按钮弹出一个DIV窗口(DIV悬浮窗口)
  20. ubuntu18断电后recovering journal一直卡在开机界面

热门文章

  1. 含有一般疑问句的歌_一般将来时详解,想学好英语必须要掌握的一个最重要语法...
  2. STM32实现PT100测温系统设计报告(OLED屏显示)
  3. python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...
  4. 01_安卓APP开发流程概览
  5. vSphere Client连接主机提示远程服务器响应时间过长
  6. 【渝粤教育】电大中专电子商务网站建设与维护 (28)作业 题库
  7. 《R语言数据挖掘》读书笔记:三、分类
  8. (详细易懂)一篇文章让你读懂到底什么是Ajax
  9. WIndows内核学习笔记:分页机制——PAE分页模式
  10. android 水滴动画效果图,Android控件实现水滴效果