UNI-APP搭配小程序ci机器人完成项目自动上传

痛点

公司目前使用uni-app来开发小程序,由于小程序后台设置体验版只能是一个人,所以每次代码修改之后,都需要这个人拉取代码,然后再上传,很不方便。

所以引入了miniprogram-ci

什么是miniprogram-ci?

miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。

开发者可不打开小程序开发者工具,独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作。

miniprogram-ci 目前提供以下能力:

  1. 上传代码,对应小程序开发者工具的上传
  2. 预览代码,对应小程序开发者工具的预览
  3. 构建 npm,对应小程序开发者工具的: 菜单-工具-构建npm
  4. 代理,配置 miniprogram-ci 的网络请求代理方式
  5. 支持 node 脚本调用方式和 命令行 调用方式

步骤一:

首先我们来安装这个模块

1
cnpm install miniprogram-ci --save

注意:这里必须用cnpm来代替npm,不然会报代码超过2MB的错误,这可能是小程序的bug

步骤二:

我们需要拿到代码上传秘钥,通过访问“微信公众平台-开发-开发设置”,下载代码上传秘钥,并且配置好IP白名单,我设置为了公司的IP地址。这样只有在公司内部才可以上传代码,降低了风险。

将下载下来的代码上传秘钥放在项目根目录下

步骤三:

在根目录新增upload.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const ci = require('miniprogram-ci')
const path = require('path')

; (async () => {
const project = new ci.Project({
appid: 'wxc87826bfbfd8cb61',
type: 'miniProgram',
projectPath: path.join(__dirname, './dist/dev/mp-weixin'),
privateKeyPath: path.join(__dirname, './private.wxc87826bfbfd8cb61.key'),
ignores: ['node_modules/**/*'],
})
await ci.upload({
project,
version: '1.0.0',
desc: '上传',
setting: {
es6: true,
minifyJS: true,
minify: true
},
onProgressUpdate: console.log,
})
})()

步骤四:

执行代码,完成上传

1
node upload

参考资料

微信小程序官方文档-CI

使用cli命令上传代码报超过2MB代码限制


UNI-APP搭配小程序ci机器人完成项目自动上传
https://thaneyang.github.io/2020/06/UNI-APP搭配小程序ci机器人完成项目自动上传.html
作者
ThaneYang
发布于
2020年6月17日
许可协议