微信小程序自动发布
Reverse Lv4

概述

当前我的项目基于 vite-uniapp 脚手架开发,使用微信小程序平台进行发布。

我的 nodejs 版本是v18.x,使用的包管理器是pnpm

使用官方提供的 cli 工具miniprogram-ci来进行自动化发布。

安装工具

第一步先安装这个工具

1
pnpm add miniprogram-ci

编写发布脚本

:::danger 注意注意
配置里面填写的项目路径和私钥文件建议全部使用绝对路径,避免路径错误导致各种问题,你可以用process.cwd()来获取当前工作目录,然后拼接上你的项目路径和私钥文件路径即可
:::

接下来在项目下创建一个push目录,并且编写一个 js 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const ci = require('miniprogram-ci');
const project = new ci.Project({
appid: '你的微信小程序的 appid',
type: 'miniProgram',
projectPath: '你的项目路径',
privateKeyPath: '你的私钥文件',
ignores: ['node_modules/**/*'],
});
(async () => {
const uploadResult = await ci.upload({
project,
version: '1.0.0',
desc: '自动发布描述',
setting: {
es6: true,
minify: true,
},
onProgressUpdate: console.log,
});
console.log('上传结果:', uploadResult);
})();
  • appid 是你的微信小程序的 appid,登录微信小程序后台的开发管理页面可以看见
  • type 小程序类型,默认是miniProgram,有更多可选值,可以参考(官方文档)[https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html]
  • projectPath 是你的项目路径,这个路径下必须包含project.config.json,app.json这些配置文件, 由于我的项目是基于 vite-uniapp 所以在我的项目路径下是没这些文件的,而是在 build 之后的 dist 目录下,所以提供 dist 目录即可
  • privateKeyPath 私钥文件,非常重要,在小程序的管理->开发管理->小程序代码上传->小程序代码上传密钥处生成,然后下载下来丢到项目路径下即可
  • ignores 忽略的文件,默认是node_modules/**/*,可以根据实际情况进行修改
  • version 版本号,默认是1.0.0,可以根据实际情况进行修改
  • desc 描述,默认是自动发布描述,可以根据实际情况进行修改

其他一些无所谓的参数就不写了,看看官网文档差不多能理解是啥意思就行

然后大概看看我的项目结构长啥样,方便你理解

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
╭─root@2222-hyhacct /apps/data/workspace/wdycdn-applet-t250920/my-vite-uniapp 
╰─# tree -I 'node|src'
.
├── dist
│ └── build
│ └── mp-weixin
│ ├── app.js
│ ├── app.json
│ ├── app.wxss
│ └── 省略一大堆内容...
├── index.html
├── node_modules
├── package.json
├── pnpm-lock.yaml
├── push
│ ├── private.你的私钥文件.key
│ └── start.js
├── README.md
├── shims-uni.d.ts
├── Taskfile.yml
└── vite.config.js

94 directories, 183 files
╭─root@2222-hyhacct /apps/data/workspace/wdycdn-applet-t250920/my-vite-uniapp
╰─#

开始发布

1
node push/start.js

最终输出下面这样就表示发布成功了,这里的statusdone表示发布成功

1
{ id: '0.51697158522841181758591596687', message: 'upload', status: 'done' } 上传结果: { subPackageInfo: [ { name: '/otherPages/', size: 133126 }, { name: '__APP__', size: 1133882 }, { name: '__FULL__', size: 1267008 } ], pluginInfo: [], devPluginId: undefined }

然后回到微信小程序后台的管理->版本管理页面,看下面的开发版本是否已经更新了