成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Taro 小程序持續集成

開發 前端
本篇介紹了如何在 Taro 中使用插件集成 CI,并解釋了插件的原理幫助大家在非 Taro 環境下集成,整體實現并不困難。

傳統意義上的持續集成,是在 Web 端通過自動化的方式將項目打包并上傳到服務器,這一過程需要 Git 參與。

持續集成的目的是為了免去手動打包、手動上傳這一繁瑣且容易出錯的步驟,提高部署效率和部署的安全性。

而小程序部署方式與 Web 端不同,它不需要在本地打包,點擊開發者工具中的上傳按鈕就會發布版本,版本可以在小程序管理后臺看到。

當需要其他人測試時,將某個版本設置為體驗版,然后分享體驗版二維碼即可。

為什么小程序也需要持續集成?

在實際開發中我們遇到了這樣的問題:

每個前端人員上傳后會產生一個新版本,不同的人上傳后需要測試時,就要登錄到管理后臺切換體驗版,在頻繁測試場景下這個過程非常繁瑣。

圖片

那么如何處理呢?解決方案就是將某個固定的版本號設置為體驗版(如上圖中的 v1.1.0),每個人都在這個版本號下上傳,這樣就不需要在后臺切換版本了。

多人在一個版本號下上傳,開發者工具辦不到,此時需要集成 CI 的能力。

Taro 集成 CI

我司小程序是基于 Taro 開發的,Taro 提供了官方插件 @tarojs/plugin-mini-ci 來支持持續集成,使用也很方便。

我們以微信小程序為例,介紹接入持續集成的正確姿勢。

注意:小程序持續集成至少需要 Taro v3.6.2 的版本,之前的版本會報錯,請注意升級。

1、小程序后臺生成上傳密鑰。

用代碼的方式上傳小程序,必然需要微信提供一個憑證,這個憑證就是上傳密鑰。在小程序后臺找到【開發->開發管理->開發設置】,會看到“小程序代碼上傳”面板。點擊“生成”按鈕,根據步驟創建密鑰并下載。

圖片

下載后將密鑰命名為 private.key,然后將其保存在項目的 config 目錄下。

2、安裝插件并配置

在終端執行命令:

$ yarn add @tarojs/plugin-mini-ci -D

在配置文件 config/index.js 中引入插件并配置:

const ciPlugin = {
// 微信小程序
weapp: {
appid: 'xxxxx',
privateKeyPath: 'config/private.key',
},
// 版本號
version: '1.1.0',
// 版本發布描述
desc: 'CI自動發布',
}

const config = {
...
plugins: [
['@tarojs/plugin-mini-ci', ciPlugin]
],
}

配置中的 weapp 選項表示微信小程序配置,傳入小程序的 appid,屬性 privateKeyPath 表示下載后的上傳密鑰的路徑(相對路徑)。簡單兩步,配置就完成了。

3、添加上傳命令

Taro 編譯微信小程序時,通過命令 taro build --type weapp 來實現。如果要在編譯之后自動上傳代碼,也就是觸發我們上一步集成的 CI 插件,只需要添加一個 --upload 參數。

我們將編譯并上傳單獨設置為一個命令,在 package.json 中設置如下:

{
"scripts": {
"upload": "taro build --type weapp --upload"
}
}

在終端執行 yarn run upload 命令,控制臺開始執行打包,完成后會自動將代碼上傳并設置為體驗版,同時在控制臺中自動打印出體驗版的二維碼,如圖:

圖片

現在我們直接截圖分享二維碼即可,再也不需要登錄管理后臺了。

@tarojs/plugin-mini-ci 原理解密

在 Taro 中使用該插件集成 CI 很簡單,但如果你的小程序不是使用 Taro 開發,應該如何實現持續集成呢?下面我們解析下該插件的原理。

1、miniprogram-ci

小程序代碼上傳是微信支持的功能,微信團隊發布了一個叫 miniprogram-ci 的 NPM 包,支持在 Node.js 中上傳小程序代碼。使用 @tarojs/plugin-mini-ci 插件時我們傳入的配置,其實就是 miniprogram-ci 的配置。

在 Node.js 中,miniprogram-ci 的用法如下:

const ci = require('miniprogram-ci');
// ci項目實例
const project = new ci.Project({
appid: 'wxsomeappid',
type: 'miniProgram',
projectPath: 'the/project/path',
privateKeyPath: 'the/path/to/privatekey',
});
// 開始上傳
const uploadResult = await ci.upload({
project,
version: '1.1.0',
desc: 'CI自動發布',
onProgressUpdate: console.log,
});
console.log(uploadResult);

上傳代碼之后,我們還需要將體驗碼生成并輸出到控制臺。

2、生成體驗碼

在小程序中掃描體驗碼,會打開當前小程序的體驗版頁面,其實這個頁面是 H5 頁面,地址如下:

https://open.weixin.qq.com/sns/getexpappinfo?appid=xxx#wechat-redirect

在鏈接中替換為自己的 appid,就可以將鏈接生成一個二維碼輸出到控制臺,這里要借助另一個 NPM 包 ??qrcode?? 來實現。

首先安裝 qrcode:

$ yarn add qrcode

然后編寫一個將鏈接生成二維碼,并輸出到控制臺的方法:

import * as QRCode from 'qrcode';
const printQrcode = async (url) => {
let terminalStr = await QRCode.toString(url, { type: 'terminal', small: true });
console.log(terminalStr);
};

// 生成二維碼并輸出到控制臺
const url = 'https://open.weixin.qq.com/sns/getexpappinfo?appid=xxx#wechat-redirect';
printQrcode(url);

在代碼上傳完成后調用 printQrcode() 方法,即可打印出體驗碼。

總結

本篇介紹了如何在 Taro 中使用插件集成 CI,并解釋了插件的原理幫助大家在非 Taro 環境下集成,整體實現并不困難。

但小程序有自己的場景,一般情況下 CI 只針對體驗版。我們將上傳代碼封裝為 upload 命令,你可以在本地執行,當然也可以在如 GitHub Action 的自動化流水線中執行。

責任編輯:姜華 來源: 程序員成功
相關推薦

2017-02-27 18:35:23

集成交付部署

2016-08-05 17:19:37

持續集成持續交付系統運維

2017-10-19 09:47:55

容器化微服務集成

2021-03-31 09:00:00

管道集成工具

2009-06-14 18:05:58

ibmdwWebSphere

2015-07-27 11:32:24

Docker持續集成Docker部署

2015-09-24 09:43:08

阮一峰持續集成

2019-04-18 10:35:30

持續集成工具Buddy

2015-09-29 10:08:26

DockerJava持續集成

2011-09-15 09:21:46

持續集成

2012-02-23 10:22:03

JavaTeamCity

2018-01-08 14:18:14

代碼互聯網持續集成

2017-03-01 08:56:28

VSTSTFSiOS

2024-01-22 16:24:10

框架小程序開發

2015-07-22 14:59:30

OpenStac持續集成持續交付

2017-02-27 18:24:34

交付開發工具

2023-02-20 08:02:38

智能自動化交付

2020-06-23 10:41:08

云計算DevOps持續集成

2012-07-04 15:05:14

ibmdw

2017-03-02 15:40:12

iOSAndroidJenkins
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久热精品在线播放 | 久久精品国产一区二区三区不卡 | 美女黄网站 | 羞羞网站免费观看 | 91精品国产91久久久久福利 | 国产第一区二区 | 亚洲精品一二三区 | 国产精品区二区三区日本 | 天天插天天操 | 精品免费视频 | 亚洲精品综合一区二区 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 一色一黄视频 | 毛片a级毛片免费播放100 | 欧美激情一区二区 | 精品一级毛片 | 亚洲精品乱码久久久久久蜜桃 | 国产探花在线精品一区二区 | 免费的日批视频 | www.亚洲精品 | 在线成人www免费观看视频 | 久久国产精品99久久久久 | 久久国产精品久久久久 | 国产国产精品 | 国产成人精品一区二区三区 | 在线免费av观看 | 男人天堂网址 | 国内精品久久久久久 | 一区二区成人 | 欧美日韩国产一区二区三区 | 国产三区在线观看视频 | 精品久久久久一区二区国产 | 二区亚洲 | 国产一区欧美一区 | 亚洲欧美日本在线 | 91国在线观看 | 亚洲精品福利视频 | 日本午夜视频 | 国产一级片久久久 | 一级毛片,一级毛片 | 国产一二三区在线 |