微信小程序如何实现自动发布

微信小程序官方提供了小程序持续集成/持续部署(CI/CD)工具 miniprogram-ci,可以实现小程序自动发布。步骤如下:

配置项目和依赖

在项目中安装 miniprogram-cisimple-git 等 npm 包,并在项目根目录下配置相关的文件和脚本。

获取秘钥文件

打开微信小程序管理平台,开发设置,小程序代码上传,下载秘钥文件private.xxx.key

image-20241030100427808

编写上传脚本

在项目中新建目录miniprogram-ci,将秘钥文件private.xxx.key放入目录下,同时新建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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const ci = require('miniprogram-ci')
const path = require('path')

function formatDateTime(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
var second = date.getSeconds();
second = second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
};

let desc = ''
if (process.env.NODE_ENV === 'development') {
desc = `在 ${formatDateTime(new Date())} 提交【测试】版本`
} else if (process.env.NODE_ENV === 'production') {
desc = `在 ${formatDateTime(new Date())} 提交【正式】版本`
}

; (async () => {
const project = new ci.Project({
appid: '小程序APPID',
type: 'miniProgram',
projectPath: 'the/project/path',
privateKeyPath: path.join(__dirname, './private.xxx.key'),
ignores: ['node_modules/**/*'],
})
const uploadResult = await ci.upload({
project,
version: '1.0.0',
desc,
setting: {
es6: true,
es7: true,
minifyJS: true,
minify: true
},
onProgressUpdate: console.log,
threads: 4,
})
console.log(uploadResult)
})()

打开项目根目录package.json,新增代码:

1
2
3
4
5
6
{
"scripts": {
"upload:dev": "cross-env NODE_ENV=development && node ./miniprogram-ci/upload",
"upload:prod": "cross-env NODE_ENV=production && node ./miniprogram-ci/upload",
}
}
执行上传操作

执行以下命令行,自动上传到微信小程序管理平台。在上传过程中,可以通过回调函数获取到上传进度。

run upload
1
npm run upload:dev
自动化触发

将上述脚本与 CI/CD 系统(如 GitLab CI、Jenkins 等)结合,实现代码提交后自动触发构建和发布流程。例如,在 GitLab CI 中,可以配置 .gitlab-ci.yml 文件来定义构建和部署任务

微信小程序官方文档


微信小程序如何实现自动发布
https://thaneyang.github.io/2024/04/微信小程序如何实现自动发布.html
作者
ThaneYang
发布于
2024年4月16日
许可协议