搜尋
首頁微信小程式小程式開發詳解使用 taro-deploy 自動化建置發布 taro 小程序

詳解使用 taro-deploy 自動化建置發布 taro 小程序

相關學習推薦:微信小程式教學

如果你使用taro 開發小程式項目,推薦你使用taro-deploy 有效率地進行一鍵自動化建置發佈。

為什麼要用 taro-deploy?

Taro 小程式開發者常有這種痛點:開發好程式碼想要發布提測,需要進行以下一系列步驟(以支付寶、微信小程式平台為例):

詳解使用 taro-deploy 自動化建置發布 taro 小程序

整個流程將近十分鐘,其中還有不少需要手動操作的環節,可以說這種原始的發布方式效率非常低。

taro-deploy 是為了解決這個痛點出現的,它整合了支付寶和微信提供的命令列工具,自動化地完成上述流程。

用了taro-deploy,開發者在發布提測時只需兩個步驟:

  1. 執行一次指令taro-deploy
  2. 去喝杯茶歇一下

建置發佈完了,釘子上就會收到建置結果的推送了,全程無需人工幹預。

以下為釘釘推播訊息的截圖。

詳解使用 taro-deploy 自動化建置發布 taro 小程序

可以看到除了發布產生的小程式二維碼,推播訊息裡還附帶了建置機器、建置分支、專案最近的git commit 日誌等,打包資訊更清楚。

NOTE: git commit 日誌目前只會顯示 featfix 關鍵字開頭的 commit

適合我使用嗎?

如果你

  1. 使用Taro 框架開發小程式
  2. 需要支援微信和支付寶平台
  3. 想要自動化建置發布,不想手動操作
  4. 使用釘子辦公,開發和測試都在一個釘釘群組裡(這點不是必需的,沒有釘子也可以使用taro-deploy,只是會多了一些手動操作)

那你就非常適合使用taro-deploy 了。

怎麼用?

Step 1 - 安裝

npm i -g taro-deploy复制代码

Step 2 - 與平台相關的準備步驟

  1. 支付寶:參考官方文檔,準備好私鑰和 toolId。
  2. 微信:參考官方文檔,準備好私鑰

Step 3 - 創建釘釘機器人

參考官方文檔創建釘釘機器人,安全設置記得選擇「自訂關鍵字」並填上「小程式建置」即可。

建立完成後,會得到一個形如 https://oapi.dingtalk.com/robot/send?access_token=XXXXXX 的 webhook url,後續會用到。

Step 4 - 準備設定檔

在你的 Taro 專案根目錄新建一個 deploy-config.js 文件,按下述模版填入內容。

這裡需要配置的內容比較關鍵也比較多,成敗在此一舉了

// deploy-config.js// 该文件应放在 Taro 项目的根目录下module.exports = {  // 构建结果的输出目录,该脚本产生的日志也会输出到这里
  outDir: './deploy-out',  // 微信相关配置
  weapp: {    // 如果为 false,则不会运行微信的构建流程
    enable: true,    // 这里填你们配置的 Taro 编译后微信程序包的输出路径
    projectPath: './dist/weapp',    // Step 2 里获得的私钥文件的存放路径
    keyPath: './weapp.key',    // 微信小程序 appId
    appId: 'wx82xxxxxx',    // 微信体验版图片地址
    // 与支付宝不同,不管上传多少个新版本,微信的体验版地址是一直不变的
    // 因此需要在这里配置该二维码图片的链接
    // 直接从微信公众平台上复制的体验版图片地址貌似无法在钉钉里正常展示
    // 建议转存到自己的 CDN 上,再将 cdn url 填到下面这里来
    qrcodeImageUrl: 'https://xxxcdn.con/image/weapp-exp-qrcode.jpg',    // 小程序版本号
    // 由于微信的命令行 sdk 不支持设置某个版本为体验版,要改设体验版需要在网页上手动操作
    // 所以只能曲线救国,先在网页上将本工具上传的版本设为体验版(找到 ci机器人1 上传的那个版本)
    // 然后每次上传都指定同一个版本号,以覆盖旧的版本,最终实现发布新体验版的效果
    version: '1.1.0',    // true 则将跳过编译阶段,即 taro build 命令,
    skipBuild: false,
  },  // 支付宝相关配置
  alipay: {    // 如果为 false,则不会运行支付宝的构建流程
    enable: true,    // 这里填你们配置的 Taro 编译后支付宝程序包的输出路径
    projectPath: './dist/alipay',    // Step 2 里获得的私钥文件的存放路径
    keyPath: './alipay.key',    // Step 2 里获得的 toolId
    toolId: 'f48xxx',    // 支付宝小程序 appId
    appId: '202xxx',    // true 则将跳过 taro build 命令,即编译阶段
    skipBuild: false,
  },  // 默认发体验版,填 false 则发布为预览版
  // 注意如果发布为预览版,需要实现 uploadImage 的函数,否则钉钉无法展示预览版的二维码
  isExperience: true,  // 是否在构建前运行 npm install
  npmInstall: false,  // 指定环境变量,会在编译阶段,即 taro build 的指令中注入指定的环境变量
  env: {    BUILD_ENV: 'test' // 仅作 demo,实际应填入你项目编译需要用的环境变量
  },  // Step 3 中获取的钉钉机器人 webhook url
  dingTalkUrl: 'https://oapi.dingtalk.com/robot/send?access_token=xxx',  // 如果你只需要构建发布体验版小程序,则可忽略以下函数
  // 如果你需要构建发布预览版小程序,则需要实现该函数,将本地二维码图片文件转换为图片链接,否则无法将预览版二维码推送到钉钉群里
  // 其中 objectName 形如 {platform}-{timestamp}.jpg,作为建议保存的文件名
  // filePath 为本地预览版二维码图片的路径
  uploadImage: async function(objectName, filePath) {    return ''
    // 如果你使用阿里云 oss 作 cdn,可以参考以下代码进行上传
    // const OSS = require('ali-oss')
    // const client = new OSS({
    //   region: 'oss-cn-xxx',
    //   accessKeyId: 'xxx',
    //   accessKeySecret: 'xxx',
    //   bucket: 'xxx',
    // })
    // await client.put(`preview/${objectName}`, filePath, {
    //   'Cache-Control': 'max-age=31536000'
    // })
    // return `https://xxx-oss-cdn.com/preview/${objectName}`
  }
}复制代码

Step 5 - 運行taro-deploy

# cd 到你们的项目并运行taro-deploy复制代码

然後就可以靜候釘機器人推送建置結果了

FAQ

Q: 我們沒有用釘子辦公,怎麼用taro-deploy?

A: taro-deploy 目前只支援推播釘子訊息,否則只能完成自動化建置、上傳、設定體驗版,沒法完成最後的推播步驟。如果有推送其它IM工具的需求,可以嘗試自行實現,也歡迎提交 PR。

Q: 為什麼發布預覽版要實作 uploadImage 函數這麼麻煩?

A: 因為支付寶和微信的預覽版只會產生本地的二維碼圖片,要想在釘釘訊息裡展示本地的二維碼圖片,只能先將圖片上傳到cdn,再將cdn 連結填進釘釘訊息模版裡。

Q: 為什麼發布以後,微信體驗版還是舊的?

A: 請到微信的網頁控制台上檢查確保已將「ci機器人1」上傳的版本設定為體驗版。

Q: 只支援微信和支付寶嗎?

A: Taro 支援很多平台,但 taro-deploy 目前只支援了微信和支付寶兩個平台的自動建置和發布。

Q: 沒有找到 ci機器人1 上傳的版本?

A: 先跑一次 taro-deploy,等上傳完成以後,就可以在微信小程式控制台網頁的「版本控制」選單中找到。

Q: 這個工具如果出 bug 了,會造成小程式的線上故障嗎?

A: taro-deploy 目前只支援發布預覽版和體驗版,不支援發布生產版,不會影響到生產環境。

Q: 我想自訂釘子推播訊息的內容

A: 目前沒有開放很靈活的釘釘訊息模版配置,如有需要可以fork 本專案並自訂修改send-ding.js 文件,也歡迎提交PR。


以上是詳解使用 taro-deploy 自動化建置發布 taro 小程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器