介绍
之前有在taro中看到小程序持续集成 | Taro 文档,而uni-app
平台还没有相关的工具,故而在参考taro之后开发了一个可以单独使用的支持多平台小程序的uni-app持续集成工具uni-mini-ci
,支持上传微信、企业微信、钉钉、支付宝平台的小程序。只需简单配置,即可轻松上传多个平台的小程序。
安装
全局安装
# 使用 npm
npm i uni-mini-ci -g
或者
# 使用 yarn
yarn global add uni-mini-ci
局部安装
# 使用 npm
npm i uni-mini-ci --save-dev
或者
# 使用 yarn
yarn add uni-mini-ci -D
特性
- 支持微信、支付宝、钉钉小程序的上传
- 支持微信、支付宝、钉钉小程序指定版本号
- 支持设置支付宝、钉钉小程序版本号自增
- 其他小程序平台增加中...
配置
配置文件
你可以使用.minicirc
文件配置uni-mini-ci
,在根目录下创建.minicirc
文件
// .minicirc
{
"weixin": {
"appid": "微信小程序appid",
"privateKeyPath": "密钥文件相对项目根目录的相对路径,例如 key/private.appid.key",
"projectPath": "微信小程序产物目录,例如 dist/build/mp-weixin"
},
"alipay": {
"appid": "支付宝小程序appid",
"toolId": "支付宝开放平台工具ID",
"privateKey": "私钥文本内容",
"projectPath": "支付宝小程序产物目录,例如 dist/build/mp-alipay",
"autoincrement": true
},
"dd": {
"appid": "钉钉小程序appid,钉钉开发者后台的 MiniAppId 选项",
"token": "钉钉开发者后台的 API Token",
"projectPath": "钉钉小程序产物目录,例如 dist/build/mp-alipay",
"autoincrement": true
},
"version": "0.0.1",
"desc": "版本描述"
}
添加命令
添加一条 npm run script 到 package.json
中:
{
"scripts": {
// 上传到微信小程序
"upload:weixin": "minici --platform weixin",
// 上传到支付宝小程序
"upload:alipay": "minici --platform alipay",
// 上传到钉钉小程序
"upload:dd": "minici --platform dd"
}
}
目前uni-mini-ci
支持一个选项--platform
,目前支持的平台为:
weixin
微信/企业微信alipay
支付宝小程序dd
钉钉小程序
上传小程序
配置完成后,可以在终端中执行命令进行上传操作:
- 执行
yarn upload:weixin
命令上传到微信小程序 - 执行
yarn upload:alipay
命令上传到支付宝小程序 - 执行
yarn upload:dd
命令上传到钉钉小程序
我们也可以将上传命令与打包命令组合起来使用,例如:
{
"scripts": {
// 打包并上传到微信小程序
"upload:mp-weixin": "uni build -p mp-weixin && minici --platform weixin",
// 打包并上传到支付宝小程序
"upload:mp-alipay": "uni build -p mp-alipay && minici --platform alipay",
// 打包并上传到钉钉小程序
"upload:mp-dingtalk": "uni build -p mp-dingtalk && minici --platform dd"
}
}
注意
支付宝和钉钉小程序不支持上传的版本号小于或等于现有版本号,我们在测试环境调试可能会频繁的修改代码并上传,所以每次上传操作都指定版本号并不现实。针对这一问题,我们提供了
autoincrement
字段用于配置版本号是否自增,配置此字段为true
时,uni-mini-ci
会忽略配置文件中的version
字段,并且上传版本号会在当前版本的小版本号上加一。而生产环境则不建议配置autoincrement
字段,特殊情况可灵活使用。
结语
在使用了uni-mini-ci
之后,我们可以解决在需要在Jenkins中分别对接各平台小程序CI工具的问题,也解决钉钉小程序无法指定版本的问题,这可以提高我们对外发布小程序版本的效率和准确性。
相关文章
基于vue3+ts的uni-app组件库,快来了解下 - 掘金 (juejin.cn)
基于vue3的uni-app路由库助你实现跳转、传参、拦截等路由功能 - 掘金 (juejin.cn)
Git地址
uni-mini-ci: 支持多平台小程序的持续集成工具 (gitee.com)
uni-mini-ci: 支持多平台小程序的持续集成工具 (github.com)
uni-app插件市场地址
支持多平台小程序的持续集成工具 uni-mini-ci(请使用npm安装) - DCloud 插件市场