站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        詳解使用 taro-deploy 自動(dòng)化構(gòu)建發(fā)布 taro 小程序

        詳解使用 taro-deploy 自動(dòng)化構(gòu)建發(fā)布 taro 小程序

        相關(guān)學(xué)習(xí)推薦:微信小程序教程

        如果你使用 taro 開(kāi)發(fā)小程序項(xiàng)目,推薦你使用 taro-deploy 高效地進(jìn)行一鍵自動(dòng)化構(gòu)建發(fā)布。

        為什么要用 taro-deploy?

        Taro 小程序開(kāi)發(fā)者常有這種痛點(diǎn):開(kāi)發(fā)好代碼想要發(fā)布提測(cè),需要進(jìn)行以下一系列步驟(以支付寶、微信小程序平臺(tái)為例):

        詳解使用 taro-deploy 自動(dòng)化構(gòu)建發(fā)布 taro 小程序

        整個(gè)流程將近十分鐘,其中還有不少需要手動(dòng)操作的環(huán)節(jié),可以說(shuō)這種原始的發(fā)布方式效率非常低。

        taro-deploy 就是為了解決這個(gè)痛點(diǎn)出現(xiàn)的,它集成了支付寶和微信提供的命令行工具,自動(dòng)化地完成上述流程。

        用了 taro-deploy,開(kāi)發(fā)者在發(fā)布提測(cè)時(shí)只需兩步:

        1. 運(yùn)行一次命令 taro-deploy
        2. 去喝杯茶歇一下

        構(gòu)建發(fā)布完了,釘釘上就會(huì)收到構(gòu)建結(jié)果的推送了,全程無(wú)需人工干預(yù)。

        以下為釘釘推送消息的截圖。

        詳解使用 taro-deploy 自動(dòng)化構(gòu)建發(fā)布 taro 小程序

        可以看到除了發(fā)布生成的小程序二維碼,推送消息里還附帶了構(gòu)建機(jī)器、構(gòu)建分支、項(xiàng)目最近的 git commit 日志等,打包信息更清楚。

        NOTE: git commit 日志目前只會(huì)展示 featfix 關(guān)鍵詞開(kāi)頭的 commit

        適合我用嗎?

        如果你

        1. 使用 Taro 框架開(kāi)發(fā)小程序
        2. 需要支持微信和支付寶平臺(tái)
        3. 想要自動(dòng)化構(gòu)建發(fā)布,不想手動(dòng)操作
        4. 使用釘釘辦公,開(kāi)發(fā)和測(cè)試都在一個(gè)釘釘群里(這點(diǎn)不是必需的,沒(méi)有釘釘也可以使用 taro-deploy,只是會(huì)多了一些手動(dòng)操作)

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

        怎么用?

        Step 1 – 安裝

        npm i -g taro-deploy復(fù)制代碼

        Step 2 – 平臺(tái)相關(guān)的準(zhǔn)備步驟

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

        Step 3 – 創(chuàng)建釘釘機(jī)器人

        參考官方文檔創(chuàng)建釘釘機(jī)器人,安全設(shè)置記得選擇“自定義關(guān)鍵詞”并填上“小程序構(gòu)建”即可。

        創(chuàng)建完成后,會(huì)得到一個(gè)形如 https://oapi.dingtalk.com/robot/send?access_token=XXXXXX 的 webhook url,后續(xù)會(huì)用到。

        Step 4 – 準(zhǔn)備配置文件

        在你的 Taro 項(xiàng)目根目錄新建一個(gè) deploy-config.js 文件,按下述模版填入內(nèi)容。

        這里需要配置的內(nèi)容比較關(guān)鍵也比較多,成敗在此一舉了

        // deploy-config.js// 該文件應(yīng)放在 Taro 項(xiàng)目的根目錄下module.exports = {  // 構(gòu)建結(jié)果的輸出目錄,該腳本產(chǎn)生的日志也會(huì)輸出到這里   outDir: './deploy-out',  // 微信相關(guān)配置   weapp: {    // 如果為 false,則不會(huì)運(yùn)行微信的構(gòu)建流程     enable: true,    // 這里填你們配置的 Taro 編譯后微信程序包的輸出路徑     projectPath: './dist/weapp',    // Step 2 里獲得的私鑰文件的存放路徑     keyPath: './weapp.key',    // 微信小程序 appId     appId: 'wx82xxxxxx',    // 微信體驗(yàn)版圖片地址     // 與支付寶不同,不管上傳多少個(gè)新版本,微信的體驗(yàn)版地址是一直不變的     // 因此需要在這里配置該二維碼圖片的鏈接     // 直接從微信公眾平臺(tái)上復(fù)制的體驗(yàn)版圖片地址貌似無(wú)法在釘釘里正常展示     // 建議轉(zhuǎn)存到自己的 CDN 上,再將 cdn url 填到下面這里來(lái)     qrcodeImageUrl: 'https://xxxcdn.con/image/weapp-exp-qrcode.jpg',    // 小程序版本號(hào)     // 由于微信的命令行 sdk 不支持設(shè)置某個(gè)版本為體驗(yàn)版,要改設(shè)體驗(yàn)版需要在網(wǎng)頁(yè)上手動(dòng)操作     // 所以只能曲線救國(guó),先在網(wǎng)頁(yè)上將本工具上傳的版本設(shè)為體驗(yàn)版(找到 ci機(jī)器人1 上傳的那個(gè)版本)     // 然后每次上傳都指定同一個(gè)版本號(hào),以覆蓋舊的版本,最終實(shí)現(xiàn)發(fā)布新體驗(yàn)版的效果     version: '1.1.0',    // true 則將跳過(guò)編譯階段,即 taro build 命令,     skipBuild: false,   },  // 支付寶相關(guān)配置   alipay: {    // 如果為 false,則不會(huì)運(yùn)行支付寶的構(gòu)建流程     enable: true,    // 這里填你們配置的 Taro 編譯后支付寶程序包的輸出路徑     projectPath: './dist/alipay',    // Step 2 里獲得的私鑰文件的存放路徑     keyPath: './alipay.key',    // Step 2 里獲得的 toolId     toolId: 'f48xxx',    // 支付寶小程序 appId     appId: '202xxx',    // true 則將跳過(guò) taro build 命令,即編譯階段     skipBuild: false,   },  // 默認(rèn)發(fā)體驗(yàn)版,填 false 則發(fā)布為預(yù)覽版   // 注意如果發(fā)布為預(yù)覽版,需要實(shí)現(xiàn) uploadImage 的函數(shù),否則釘釘無(wú)法展示預(yù)覽版的二維碼   isExperience: true,  // 是否在構(gòu)建前運(yùn)行 npm install   npmInstall: false,  // 指定環(huán)境變量,會(huì)在編譯階段,即 taro build 的指令中注入指定的環(huán)境變量   env: {    BUILD_ENV: 'test' // 僅作 demo,實(shí)際應(yīng)填入你項(xiàng)目編譯需要用的環(huán)境變量   },  // Step 3 中獲取的釘釘機(jī)器人 webhook url   dingTalkUrl: 'https://oapi.dingtalk.com/robot/send?access_token=xxx',  // 如果你只需要構(gòu)建發(fā)布體驗(yàn)版小程序,則可忽略以下函數(shù)   // 如果你需要構(gòu)建發(fā)布預(yù)覽版小程序,則需要實(shí)現(xiàn)該函數(shù),將本地二維碼圖片文件轉(zhuǎn)換為圖片鏈接,否則無(wú)法將預(yù)覽版二維碼推送到釘釘群里   // 其中 objectName 形如 {platform}-{timestamp}.jpg,作為建議保存的文件名   // filePath 為本地預(yù)覽版二維碼圖片的路徑   uploadImage: async function(objectName, filePath) {    return ''     // 如果你使用阿里云 oss 作 cdn,可以參考以下代碼進(jìn)行上傳     // 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}`   } }復(fù)制代碼

        Step 5 – 運(yùn)行 taro-deploy

        # cd 到你們的項(xiàng)目并運(yùn)行taro-deploy復(fù)制代碼

        然后就可以靜候釘釘機(jī)器人推送構(gòu)建結(jié)果了

        FAQ

        Q: 我們沒(méi)有用釘釘辦公,怎么用 taro-deploy?

        A: taro-deploy 目前只支持推送釘釘消息,否則只能完成自動(dòng)化構(gòu)建、上傳、設(shè)置體驗(yàn)版,沒(méi)法完成最后的推送步驟。如果有推送其它IM工具的需求,可以嘗試自行實(shí)現(xiàn),也歡迎提交 PR。

        Q: 為什么發(fā)布預(yù)覽版要實(shí)現(xiàn) uploadImage 函數(shù)這么麻煩?

        A: 因?yàn)橹Ц秾毢臀⑿诺念A(yù)覽版只會(huì)生成本地的二維碼圖片,要想在釘釘消息里展示本地的二維碼圖片,只能先將圖片上傳到 cdn,再將 cdn 鏈接填進(jìn)釘釘消息模版里。

        Q: 為什么發(fā)布以后,微信體驗(yàn)版還是舊的?

        A: 請(qǐng)到微信的網(wǎng)頁(yè)控制臺(tái)上檢查確保已將「ci機(jī)器人1」上傳的版本設(shè)置為體驗(yàn)版。

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

        A: Taro 支持很多平臺(tái),但是 taro-deploy 目前只支持了微信和支付寶兩個(gè)平臺(tái)的自動(dòng)構(gòu)建和發(fā)布。

        Q: 沒(méi)有找到 ci機(jī)器人1 上傳的版本?

        A: 先跑一遍 taro-deploy,等上傳完成以后,就可以在微信小程序控制臺(tái)網(wǎng)頁(yè)的「版本控制」菜單里找到。

        Q: 這個(gè)工具如果出 bug 了,會(huì)造成小程序的線上故障嗎?

        A: taro-deploy 目前只支持發(fā)布預(yù)覽版和體驗(yàn)版,不支持發(fā)布生產(chǎn)版,不會(huì)影響到生產(chǎn)環(huán)境。

        Q: 我想定制釘釘推送消息的內(nèi)容

        A: 目前沒(méi)有開(kāi)放很靈活的釘釘消息模版配置,如有需要可以 fork 本項(xiàng)目并定制修改 send-ding.js 文件,也歡迎提交 PR。

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 性色精品视频网站在线观看| 精品一区二区三区在线视频| 精品无码久久久久久尤物| 国产伦精品一区二区免费| 国产2021精品视频免费播放| 亚洲永久精品ww47| 久久se这里只有精品| 91精品国产91久久久久久青草| 国产成人vr精品a视频| 欧美午夜精品久久久久免费视| 热久久国产欧美一区二区精品| 99久久精品国产一区二区蜜芽| 精品久久久久久综合日本| 国产久热精品无码激情| 色欲国产麻豆一精品一AV一免费| 四虎影视永久在线精品免费| 精品一区二区三区免费观看| 国产高清在线精品一区小说| 久久精品嫩草影院| 精品视频一区二区三区在线观看| 国产网红无码精品视频| 久久久久国产精品熟女影院| 亚洲高清专区日韩精品| 中文字幕av日韩精品一区二区| 日韩精品欧美国产在线| 欧美日韩精品| 亚洲国产综合精品一区在线播放| 麻豆国内精品久久久久久| 免费人妻精品一区二区三区| 久久九九久精品国产| 久久久91人妻无码精品蜜桃HD| 精品欧美| 国产cosplay精品视频| 国产精品高清视亚洲精品| 精品调教CHINESEGAY| 精品国产一区二区三区无码| 日本VA欧美VA精品发布| 精品无码久久久久久午夜| 2021国产成人精品国产| 久久精品嫩草影院| 国产精品午夜无码AV天美传媒|