溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信小程序自動化部署怎么實現(xiàn)

發(fā)布時間:2022-10-10 11:11:20 來源:億速云 閱讀:186 作者:iii 欄目:移動開發(fā)

這篇文章主要講解了“微信小程序自動化部署怎么實現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“微信小程序自動化部署怎么實現(xiàn)”吧!

miniprogram-ci

微信小程序的自動化部署流程必須依賴 miniprogram-ci,這個插件。

miniprogram-ci 是從微信開發(fā)者工具中抽離的關(guān)于小程序/小游戲項目代碼的編譯模塊。

開發(fā)者可不打開小程序開發(fā)者工具,獨立使用 miniprogram-ci 進(jìn)行小程序代碼的上傳、預(yù)覽等操作。

因為腳本的執(zhí)行依賴這個插件,所以我們可以將這個插件安裝在要執(zhí)行腳本的服務(wù)器上,或者安裝在本地項目中。

npm install miniprogram-ci --save

微信公眾平臺配置

登錄公眾平臺,打開 開發(fā)-開發(fā)管理-開發(fā)設(shè)置,找到 小程序代碼上傳 配置項,生成小程序代碼上傳密鑰,并添加 ip 白名單,密鑰文件可以存放在要執(zhí)行腳本的服務(wù)器上,或者保存在項目中,只要能讓腳本訪問到即可。密鑰文件

腳本

編寫 xxx.sh 的執(zhí)行腳本,命名隨意。

set -e
while read -r line
do
  if [[ $line =~ "version" ]]
  then
    declare a=${line##*:}
    declare b=${a#*\"}
    declare version=${b%\"*}
    break
  fi
done < package.json
echo $version
yarn
echo "開始編譯..."
start1=$(date +%s)
yarn build:mp-weixin
end1=$(date +%s)
take1=$(( end1 - start1 ))
echo "Compile Success:${take1}s"
echo "微信小程序上傳..."
start2=$(date +%s)
# upload
miniprogram-ci \
  upload \
  --pp ./dist/build/mp-weixin \
  --pkp ./private.wx3fxxxxxxxx3.key \
  --appid wx3fxxxxxxxx3 \
  --uv $version \
  --threads 1 \
  -r 1 \
  --enable-es6 true \
  --enable-es7 true \
  --enable-autoprefixwxss true \
  --enable-minify true \
end2=$(date +%s)
take2=$(( end2 - start2 ))
echo "Upload Success: ${take2}s"
take3=$(( end2 - start1 ))
echo "Total Time: ${take3}s"

腳本具體模塊講解

set -e

表示后續(xù)所有的 bash 命令的返回 code 如果不是 0,那么腳本立即退出,后續(xù)的腳本將不會得到執(zhí)行的機(jī)會。說人話就是腳本執(zhí)行過程中,有報錯立即退出停止執(zhí)行。

while read -r line
do
  if [[ $line =~ "version" ]]
  then
    declare a=${line##*:}
    declare b=${a#*\"}
    declare version=${b%\"*}
    break
  fi
done < package.json
echo $version

以上腳本是逐行讀取 package.json 文件內(nèi)容,找到 version 字段,并獲取其對應(yīng)的值定義一個 $version 變量。直白點講就是獲取項目的版本號,因為下面要用。

yarn
echo "開始編譯..."
start1=$(date +%s)
yarn build:mp-weixin
end1=$(date +%s)
take1=$(( end1 - start1 ))
echo "Compile Success:${take1}s"
echo "微信小程序上傳..."
start2=$(date +%s)

看到 yarn, 大家應(yīng)該都知道這段腳本就是安裝項目依賴,并且打包編譯小程序項目,其中的 start1、end1、take1 這些是記錄時間的,可忽略。

# upload
miniprogram-ci \
  upload \
  --pp ./dist/build/mp-weixin \
  --pkp ./private.wx3fxxxxxxxx3.key \
  --appid wx3fxxxxxxxx3 \
  --uv $version \
  --threads 1 \
  -r 1 \
  --enable-es6 true \
  --enable-es7 true \
  --enable-autoprefixwxss true \
  --enable-minify true \

以上這段腳本就是核心了。

通過腳本也不難看出,我們是通過 miniprogram-ci 進(jìn)行代碼上傳的。

具體參數(shù)含義:

  • --pp:編譯打包產(chǎn)物文件路徑

  • --pkp:微信公眾平臺生產(chǎn)的那個私鑰文件路徑

  • --appid:小程序的 appid

  • --uv:項目的版本號

  • --threads:開啟線程數(shù)

  • -r:機(jī)器人編號(這個參數(shù)無所謂)

至此,整個腳本就基本完成了。

自動化部署實現(xiàn)

主要三個核心部分:

  • 上傳腳本

  • miniprogram-ci 插件

  • 密鑰文件

自動化部署實現(xiàn)方式有很多種,本文主要講解兩種。

第一種方式(推薦)

jenkins + gitlab + webhook

將腳本、密鑰文件直接放在項目根目錄,jenkins 安裝 webhook 相關(guān)插件,gitlab 配置 webhook,這樣就可以做到 master 分支代碼變動就可以觸發(fā) webhook,進(jìn)而觸發(fā) jenkins 執(zhí)行,別忘了在 jenkins 服務(wù)器全局安裝 miniprogram-ci 插件。

這樣我們就實現(xiàn)了,當(dāng)業(yè)務(wù)需求開發(fā)完,代碼合并到 master 分支之后,自動觸發(fā) webhook,進(jìn)而觸發(fā) jenkins 執(zhí)行上傳腳本。

我們開發(fā)人員需要做的就只是合并代碼到 master 分支,然后到小程序后臺選擇上傳的版本提交審核即可。

nice~

第二種方式

基于本地終端執(zhí)行,將腳本、密鑰文件直接放在項目根目錄,本地安裝 miniprogram-ci 插件,直接在終端中執(zhí)行腳本即可。

./ci-xxx.sh

感謝各位的閱讀,以上就是“微信小程序自動化部署怎么實現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對微信小程序自動化部署怎么實現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI