最近很多人問
mini-blog的部署,確實(shí)第一次部署小程序有點(diǎn)繁瑣,有些是小程序本身的限制,有些是迭代過程中的變化造成,這里統(tǒng)一匯總下。
關(guān)于本地環(huán)境
- 確保小程序
IDE是最新的版本。 - 本地已安裝
nodejs環(huán)境(小程序云開發(fā)有相關(guān)依賴) - 確保已開通小程序云開發(fā)環(huán)境,并了解一些基本概念。
關(guān)于云函數(shù)上傳
第一次下載源碼加載后,優(yōu)先安裝云函數(shù)本地依賴「每個(gè)云函數(shù)都需要」
右擊相應(yīng)的云函數(shù),選擇在終端打開:

通過命令安裝相應(yīng)的依賴:
npm install wx-server-sdk@latest

安裝完成后,右擊相應(yīng)的云函數(shù),選擇創(chuàng)建并部署:所有文件

關(guān)于云環(huán)境配置
在運(yùn)行小程序前,需要對(duì)云環(huán)境進(jìn)行配置,首先找到自己的云環(huán)境ID,云開發(fā)控制臺(tái)右上角就有。

接著進(jìn)行配置,配置包含兩部分,小程序端和云函數(shù)端?!高@兩部分是獨(dú)立的,可以理解為前后端了」
首先是云函數(shù)端,為每個(gè)云函數(shù)進(jìn)行環(huán)境變量的配置,配置的key為Env「注意大小寫」,對(duì)應(yīng)value就是你的云環(huán)境ID

然后是小程序端,小程序端在utils下的config.js中

關(guān)于云數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)的集合數(shù)量沒有變,還是這幾個(gè):
//緩存小程序or公眾號(hào)的accessToken
access_token
//小程序文章集合
mini_posts
//小程序評(píng)論內(nèi)容集合
mini_comments
//小程序用戶操作文章關(guān)聯(lián)(收藏、點(diǎn)贊)
mini_posts_related
//小程序博客相關(guān)配置集合
mini_config
//小程序博客相關(guān)操作日志
mini_logs
//小程序博客用戶FormID(用于模板消息推送)
mini_formids
在創(chuàng)建完之后,一定修改下集合的權(quán)限,不然小程序端是沒有權(quán)限讀取集合中的數(shù)據(jù)的

關(guān)于公眾號(hào)文章同步
目前最新版與原教程[mini-blog]基于云開發(fā)的博客小程序使用教程說明的有點(diǎn)出入
同步文章的云函數(shù)已經(jīng)從adminService變更為syncService,所以相應(yīng)的AppId和AppSecret要配置在syncService這個(gè)云函數(shù)下面

如果手動(dòng)執(zhí)行同步文章云函數(shù)報(bào)錯(cuò),皆是由于配置問題導(dǎo)致,請(qǐng)仔細(xì)核對(duì)AppId和AppSecret是否配置正確「注意大小寫,再次強(qiáng)調(diào)」
另外檢查公眾號(hào)對(duì)應(yīng)的白名單是否配置和確認(rèn)是否存在多處獲取access_token的地方「access_token會(huì)搶占,其他地方獲取過,那小程序端獲取的access_token就失效了,影響文章同步」。
關(guān)于后臺(tái)管理
后臺(tái)管理是通過配置openId來實(shí)現(xiàn)權(quán)限管控的,具體是在adminService云函數(shù)下配置對(duì)應(yīng)的環(huán)境變量,key名為author,value為相應(yīng)的openId,可以配置多個(gè),逗號(hào)分隔即可。

openId的獲取,可以直接看控制臺(tái)日志,已經(jīng)打印出來了,在app.js第30行

關(guān)于海報(bào)組件
如果發(fā)現(xiàn)文章詳情頁報(bào)錯(cuò)包含wxa-plugin-canvas的錯(cuò)誤時(shí),那是說明你本地沒有安裝海報(bào)組件。
相關(guān)教程可以參考基于云開發(fā)的小程序海報(bào)功能的實(shí)現(xiàn),已經(jīng)寫的很詳細(xì)了。
額外說明下,如果npm安裝組件過程中報(bào)錯(cuò),可以嘗試將小程序中的package.json和lock.json刪除后再進(jìn)行安裝

如果海報(bào)組件都已經(jīng)按照上述步驟完成,但發(fā)現(xiàn)會(huì)報(bào)如下錯(cuò)誤
fail invalid page hint....

不要激動(dòng),程序本身沒有問題,是正常的,報(bào)錯(cuò)是因?yàn)樾〕绦驔]有發(fā)布過線上環(huán)境,找不到相應(yīng)的page地址。
原因是在生成海報(bào)組件時(shí),會(huì)生成當(dāng)前文章頁的小程序碼,小程序碼中包含的跳轉(zhuǎn)頁面的校驗(yàn)是根據(jù)你線上環(huán)境頁面來的「如果頁面不存在就會(huì)報(bào)該錯(cuò)誤」。
所以,等小程序上線后可以再嘗試點(diǎn)擊試下。
最后
基本上所有遇到的問題都是上面所提到的導(dǎo)致,后續(xù)遇到類似問題不再一一說明了。
另外碰到錯(cuò)誤可以看對(duì)應(yīng)的日志「小程序看控制臺(tái),云函數(shù)看云函數(shù)的日志」,日志中都有對(duì)應(yīng)的行數(shù),找到相應(yīng)的代碼行數(shù)看下,基本上就能定位到問題了。
最后,還是建議根據(jù)時(shí)間軸看下我的文章,mini-blog期間的迭代變化,文章中基本都有體現(xiàn)。
最后的最后,遇到問題還是需要學(xué)會(huì)獨(dú)立去解決,這也是一種能力。
Ps.GitHub開源地址:
https://github.com/CavinCao/mini-blog