首頁 >微信小程式 >小程式開發 >微信小程式自動化部署

微信小程式自動化部署

WBOY
WBOY轉載
2022-10-09 17:43:033115瀏覽

本篇文章為大家帶來了關於微信小程式的相關內容,其中主要介紹了微信小程式自動化部署的相關問題,日常開發微信小程式的流程是比較繁瑣的,自動化部署流程可以縮減這個流程,下面一起來看看,希望對大家有幫助。

微信小程式自動化部署

【相關學習推薦:小程式學習教學

我們先來整理日常開發微信小程式的流程:程式碼開發完之後我們首先要提交到程式碼倉庫,然後使用微信開發者工具執行程式碼,接著透過開發者工具上傳程式碼到微信小程式後台,最後在後台提交審核。

不難看出流程還是比較繁瑣的,自動化部署流程可以幫助我們縮減這個流程,做到解放解放碼農的雙手,具體如何實現,我們往下看。

miniprogram-ci

微信小程式的自動化部署流程必須依賴 miniprogram-ci,這個外掛程式。

miniprogram-ci 是從微信開發者工具中抽離的關於小程式/小遊戲專案程式碼的編譯模組。

開發者可不開啟小程式開發者工具,獨立使用 miniprogram-ci 進行小程式碼的上傳、預覽等操作。

因為腳本的執行很依賴這個插件,所以我們可以將這個插件安裝在要執行腳本的伺服器上,或安裝在本地專案中。

npm install miniprogram-ci --save

微信公眾平台配置

登入公眾平台,開啟開發-開發管理-開發設置,找到小程式碼上傳設定項,產生小程式碼上傳金鑰,並新增ip 白名單,密鑰檔案可以存放在要執行腳本的伺服器上,或保存在專案中,只要能讓腳本存取即可。

微信小程式自動化部署

金鑰檔案

微信公眾平台產生的金鑰檔案具體內容如下:

微信小程式自動化部署

# #腳本

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

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

表示後續所有的 bash 命令的返回 code 如果不是 0,那麼腳本立即退出,後續的腳本將不會得到執行的機會。說人話就是腳本執行過程中,有報錯立即退出停止執行。

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 檔案內容,找到 version 字段,並取得其對應的值定義一個 $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, 大家應該都知道這段腳本就是安裝項目依賴,並且打包編譯小程式項目,其中的 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 進行程式碼上傳的。
  • 具體參數意義:

  • --pp:編譯打包產物檔案路徑

  • --pkp:微信公眾平台生產的那個私鑰檔案路徑

  • --appid:小程式的appid

  • --uv:專案的版本號碼

--threads:開啟執行緒數

-r:機器人編號(這個參數無所謂)

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

  • 自動化部署實作
  • 主要三個核心部分:

  • #上傳腳本

miniprogram-ci外掛程式

金鑰檔案

自動化部署實作方式有很多種,本文主要講解兩種。

第一種方式(推薦)

jenkins gitlab webhook

將腳本、金鑰檔案直接放在項目根目錄,jenkins 安裝webhook 相關插件,gitlab 配置webhook,這樣就可以做到master 分支代碼變動就可以觸發webhook,進而觸發jenkins 執行,別忘了在jenkins 伺服器全域安裝miniprogram-ci 插件。 這樣我們就實現了,當業務需求開發完,程式碼合併到 master 分支之後,自動觸發 webhook,進而觸發 jenkins 執行上傳腳本。 我們開發人員需要做的就只是合併程式碼到 master 分支,然後到小程式後台選擇上傳的版本提交審核即可。

nice~

###第二種方式#############基於本機終端執行,將腳本、金鑰檔案直接放在專案根目錄,本地安裝miniprogram-ci 插件,直接在終端機中執行腳本即可。 ###
./ci-xxx.sh
###下圖就是自動化部署上傳的版本:###

微信小程式自動化部署

【相關學習推薦:小程式學習教學

以上是微信小程式自動化部署的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.im。如有侵權,請聯絡admin@php.cn刪除