• 使用 whistle 替代本地 nginx/webpack 服务


    加入鹅厂之后,我发现团队都在用一款叫做 Whistle 的工具,起初我以为这只是一款类似 Fiddler/Charles 的普通货色。然鹅,发现下面这两种用法之后,我把自己的膝盖摘下来献给了制作这款工具的大佬。

    如果你还没用过 whistle,没关系。只需两步:

    1. 第一步,Node.js 环境下全局安装 npm i -g whistle 并启动 whistle w2 start

    2. 第二步,给 Chrome 浏览器装个 SwitchyOmega 的插件,添加一个将所有请求转发到 127.0.0.1:8899 的代理配置。如下图所示(Bypass List 部分也记得清掉)

    环境准备好之后,我们开始进入今天的姿势,看 whistle 是如何取代本地 hosts 和 web server 的。

    1、搭建静态资源 server

    打开 whistle 管理后台 http://127.0.0.1:8899 ,在左侧导航的 Rules 面板写入一条规则:

    # 规则:自定义域名或URL<空格>本地目录路径 (以下示例请替换为自己本地的写法)
    my.demo/bw/ file:///Users/kaiye/Projects/Demo/002-black-white/

    再用浏览器打开 http://my.demo/bw/ 的网址。Bingo!一个自定义域名的静态资源服务器搭建成功!

    是不是比 nginx 配置简单一丢丢?如果安装了 whistle 的证书,还能直接支持 HTTPS!

     

    2、动态 server 转发

    如果我们把上例中的本地路径替换成一个本地服务端口,例如 webpack devServer 的端口。那么就可以实现本地带端口号的 host 配置功能,同时还能告别复杂的 devServer/nginx rewrite 配置:

    // webpack.config.js 配置传统手艺
    module.exports = {
      //...
      devServer: {
        proxy: {
          '/api': {
            target: ''https://other-server.example.com'',
            pathRewrite: {'^/api' : ''}
          }
        }
      }
    };

    假设本地 webpack 服务端口号为 8080,whistle 的配置规则示例如下:

    # 任意域名绑定到本地任意服务
    https://my.demo/ 127.0.0.1:8080
    ​
    # 重写该域名的后端接口路径到线上服务地址
    https://my.demo/api/ https://backend.example.com/api/
    # 或直接转发到局域网某台机器的具体端口
    https://my.demo/api2/ http://127.0.0.1:3000

    接下来就可以打开 https://my.demo/ 像调试线上环境一样开发本地环境了。你还可以将 whistle 部署到局域网服务器,用来搭建一个多人协作的测试环境(也就是 nohost 解决方案)。

    whistle 是一款免费且强大的抓包工具,除了本文提到的静态 server 和服务转发功能以外,还提供了大量内置协议用于支持 request/respond 动态修改与注入、websocket 调试、API mock 等功能,借助 whistle plugin 插件生态,不仅能获得极佳的移动端调试体验,还能满足各式各样的调试需求。更多 whistle 介绍,请访问 whistle 官网

    如果你有关于环境搭建的问题和建议,欢迎留言交流,也可以关注公众号「猫哥学前班」的「网络编程连载系列」。

  • 相关阅读:
    hdu Boring counting
    hdu Connections between cities
    hdu Median Filter
    hdu Entropy
    hdu Box Relations
    未能加载数据集 加载DataSet错误
    SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究
    Spread.NET中文开发文档汇总
    ChartDirector资料小结
    AmCharts图表JavaScript Charts参数
  • 原文地址:https://www.cnblogs.com/kaiye/p/9628692.html
Copyright © 2020-2023  润新知