支持多平台小程序的uni-app持续集成工具

2,778 阅读4分钟

介绍

之前有在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 scriptpackage.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)

前端代码提交规范 - 掘金 (juejin.cn)

Git地址

uni-mini-ci: 支持多平台小程序的持续集成工具 (gitee.com)

uni-mini-ci: 支持多平台小程序的持续集成工具 (github.com)

uni-app插件市场地址

支持多平台小程序的持续集成工具 uni-mini-ci(请使用npm安装) - DCloud 插件市场

示例项目

Vue3-Uni-TS-Template基础模板 - DCloud 插件市场