微信小程序本地调试

1,885 阅读2分钟

在我们开发微信小程序或者微信公众号时,可能小程序端和后台是同时开发的,这种情况下,如果后台代码写一点,就部署到服务器,然后再调试小程序,会很繁琐。而很多小程序api又必须要经过腾讯服务器,再转发到我们自己的后台,这就要求我们的后台能够被外网访问到。下面有几种常见的解决方案:

1. 直接在服务器运行

远程服务需要先装好程序运行的依赖环境。可以打包之后,将文件传到远程服务器运行。也可以借助 PyCharm或者IDEA远程部署 功能。大概的流程为:远程服务器开启sftp 或者 ssh远程访问,然后在 IDEA -> Tools -> Deployment 中连接远程服务器。每一次运行之前,需要先将文件同步过去,然后在远程服务器命令行中输入运行的命令。其实IDE可以将编译器连接到远程服务器的编译器,这样在编译之前把代码同步过去后,就能在IDE中直接运行,而不用在远程命令行中运行。[相关步骤网上例子很多,这里简写了很多过程]

2. 使用内网穿透工具

ngrok、ittun(基于ngrok)、localtunel ( nodejs ),优点是比较方便,不需要太多配置,但缺点也很明细,不稳定。[我暂时没试过]

3. 通过服务器转发消息到本地 [推荐]

  • 开启服务器的远程转发功能,在/etc/ssh/sshd_config文件末尾加入一句:GatewayPorts yes,然后重启ssh:sudo systemctl restart sshd.

  • 本地环境安装xshell,这里借助它的隧道功能来转发。配置步骤如下:

    • 在 Connection 中输入远程IP
    • 在 Authentication 中输入 user namepassword, 这样在每次打开的时候就不用新输入登录信息
    • 在 Login Scripts 中 添加一条命令 内容为 top, 目的是防止无操作时间久了断开连接
    • 在 SSH 的 Tunneling,新建一个隧道,类型 Remote(Incoming),配置信息如下图:

隧道消息转发设置
如果远程服务器没有运行Nginx,那么当远程服务器访问8082端口时, 实际上会访问位于内外的本地主机8080端口。

[1] zhuanlan.zhihu.com/p/32387683 微信小程序开发--本地调试