前后端开发利器-ngrok

542 阅读2分钟

前言

我们在日常开发中可能会遇到如下情形:

前端对接企业微信,银行 h5 时候,调试都要先打包前端部署测试,在对接平台输入前端测试地址,然后打开 h5 页面预览。有一点小问题还要重复上面步骤

前后端联调,可能存在不在一个网段的情况,一般方法是后台部署服务,前端连接调试。如果遇到接口问题还要后端重新部署

以上情况都让开发缺失了调试的实时性,开发体验大大降低。有什么好的解决方法吗,这里介绍一下我在开发中用到的 ngrok

ngrok

解决上面问题的方案需要用到内网穿透,ngrok 就是这么一个工具,它的功能有很多,我们只需要内网穿透

它的使用很简单,登录网站成功之后,在首页就有操作步骤

  1. 下载运行文件
  2. 配置认证 token
  3. 监听本地端口

个人 token 在控制台打开左侧Your Authtoken菜单,在页面点击Copy复制

应用

场景一

笔者最近在与某行 app 对接 h5 功能,对方在 app 内提供了 h5 页面入口,如果按照一般步骤,本地调试好 h5,部署测试,在 app h5 入口访问测试地址,有问题修改起来就很麻烦,使用 ngrok 后

  1. 本地运行前端

  1. ngrok 代理服务,控制台执行ngrok http https://localhost:9090,显示如下代表运行成功

复制红框链接到 app 的 h5 入口,这时候如果本地页面修改,app 内的 h5 页面也会修改

场景二

后端和前端需要联调,但是没在同一个局域网中,这时候可以用 ngrok 代理后端本地接口地址

以 nestjs 为例,本地启动服务地址为http://localhost:3000,控制台执行ngrok http http://localhost:3000,显示如下代表运行成功

在前端项目中配置 url 地址https://ad43-42-235-150-85.ngrok-free.app,当请求接口时候,可能遇到下面的提示

这是 ngrok 官方提示潜在的危险,如果你信任这个请求,可以在请求头中配置ngrok-skip-browser-warning属性,值可以是任意的,官方还推荐了 其他方法,这样就可以正常访问后台接口

其他

ngrok 免费版只能运行一个代理服务,一般可以满足日常开发,可能网络原因,代理的速度不太稳定。如果不满足自己的需求,也可以使用 frpc 的方案,自己搭建服务转发