商城系統(tǒng) 注冊

微信小程序本地調(diào)試的方法,小程序如何本地調(diào)試

2020-09-27|HiShop
導(dǎo)讀:開發(fā)小程序時,可能小程序端和后臺是同時開發(fā)的,這種情況下,如果后臺代碼寫一點,再部署到服務(wù)器,然后再調(diào)試小程序,會很繁瑣。...

  我們開發(fā)小程序時,可能小程序端和后臺是同時開發(fā)的,這種情況下,如果后臺代碼寫一點,再部署到服務(wù)器,然后再調(diào)試小程序,會很繁瑣。而很多小程序api又必須要經(jīng)過騰訊服務(wù)器,再轉(zhuǎn)發(fā)到我們自己的后臺,這就要求我們的后臺能夠被外網(wǎng)訪問到。前段時間寫小程序時嘗試過幾種方法,這里簡單介紹一下。

  首先,對于那些不需要調(diào)用類似用戶登錄這些必須要appid的功能,我們可以直接在創(chuàng)建項目的時候,不填appid,這樣小程序就不受合法域名的限制,可以直接訪問我們局域網(wǎng)內(nèi)部的后臺。

  而對于用戶登錄、微信支付等這些api,必須要appid,也必須通過騰訊的服務(wù)器,這時候我們就必須讓我們的后臺能被外網(wǎng)訪問到,而且在合法域名配置里面,只能是https。一般我們在開發(fā)時,肯定都已經(jīng)買好了外網(wǎng)服務(wù)器(比如阿里云ecs),配置什么的也不是本文重點,本文假設(shè)你已經(jīng)有一臺ecs,備案、ssl證書什么的都搞定了。以下是幾種方案:

  直接使用外網(wǎng)服務(wù)器

  常規(guī)流程,后臺代碼部署到服務(wù)器,然后小程序調(diào)試。上面已經(jīng)提過,缺點很明顯。但如果說你們的需求很明確,后臺能很快寫完,而且不需要經(jīng)常修改,可以這么做。說點題外話,對于部署這部分,可能很多都是本地打包好,比如打包成jar,然后scp或者ftp上傳到服務(wù)器,然后再運行。我覺得可以在服務(wù)器上配置git,直接把代碼托管到服務(wù)器也行,或者代碼在碼云等平臺的話,在服務(wù)器上用git pull下來也行,然后直接服務(wù)器運行代碼,等后臺穩(wěn)定后再打包運行,我覺得這么做比較好,因為每次打包都會花不少時間。當然用docker之類的當我沒說。

  使用一些內(nèi)網(wǎng)穿透工具

  以前我有用過一些,ngrok、ittun(基于ngrok)、localtunel ( nodejs ) 都有用過。優(yōu)點是比較方便,不需要太多配置,但缺點也很明細,不穩(wěn)定。你也可以自己構(gòu)建ngrok。

微信小程序本地調(diào)試的方法,小程序如何本地調(diào)試

  通過外網(wǎng)服務(wù)器轉(zhuǎn)發(fā)到本地服務(wù)器(推薦這種方法)

  這種方法我是最近用過的,感覺效果很不錯,穩(wěn)定,速度快,但我的服務(wù)器是centos, 不知道win server上有沒有類似的。

  首先,開啟服務(wù)器的遠程轉(zhuǎn)發(fā)功能,在/etc/ssh/sshd_config文件末尾加入一句:GatewayPorts yes,然后重啟ssh:sudo systemctl restart sshd.

  然后本地環(huán)境安裝xshell,這里借助它的隧道功能來轉(zhuǎn)發(fā)。具體的是在屬性>連接>ssh>隧道里面添加一條轉(zhuǎn)發(fā)規(guī)則,比如把服務(wù)器上面的80端口轉(zhuǎn)發(fā)到本地80端口。

  重啟xshell,當xshell連接上服務(wù)器時,服務(wù)器上面到80端口的請求就可以轉(zhuǎn)發(fā)到本地80端口了。

  接下來要解決的是,小程序只能訪問https,那我們只需要把ssl:443端口轉(zhuǎn)發(fā)到http:80端口就ok了,直接上nginx部分配置:

  location /admin/ {

  proxy_pass https://localhost/admin/;

  }

  location /image/ {

  proxy_pass https://localhost/image/;

  }

  location /api/ {

  proxy_pass https://localhost/api/;

  }

  這樣配置比較有針對性,比如admin是管理員后臺接口,給web端調(diào)用,image為圖片路徑,api給小程序調(diào)用。當然也可以直接所有的都轉(zhuǎn)發(fā):

  location / {

  proxy_pass https://localhost;

  }

  或者說你有一個正常運行的版本已經(jīng)在服務(wù)器上運行,還需要再配置一個開發(fā)的時候用,可以這么來:

  location /dev/ {

  proxy_pass https://localhost/;

  }

  當然道理都一樣,你甚至還可以只在一臺服務(wù)器上面配置ssl,然后給不同的后臺配置不同的轉(zhuǎn)發(fā)路徑,這樣其他后臺就不用上ssl了,前提是服務(wù)器負載沒問題。

電話咨詢 預(yù)約演示 0元開店