前言
公司小程序项目全部采用 Uni-App 开发,在发版时要先进行 Build 打包,然后在微信开发者工具中选择生产环境项目打开,再进行上传操作。
这种发版每次都要到微信开发者工具中操作,就要忍受微信开发者工具的龟速加载。
概述
miniprogram-ci 是从 微信开发者工具 中抽离的关于小程序/小游戏项目代码的编译模块。
开发者可不打开小程序开发者工具,独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作。
miniprogram-ci目前提供以下能力:
- 上传代码,对应小程序开发者工具的上传
- 预览代码,对应小程序开发者工具的预览
- 构建
npm,对应小程序开发者工具的: 菜单-工具-构建npm- 上传云开发云函数代码,对应小程序开发者工具的上传云函数能力
- 上传云托管代码,对应小程序开发者工具的上传云托管能力
- 上传云存储/静态托管文件,对应小程序开发者工具-云开发-云存储和静态托管文件管理
- 代理,配置
miniprogram-ci的网络请求代理方式- 支持获取最近上传版本的
sourceMap- 支持
node脚本调用方式和 命令行 调用方式
准备工作
-
前往"微信公众平台-开发-开发设置"下载代码上传密钥,并配置 IP 白名单。
开发者可选择打开 IP 白名单,打开后 只有白名单中的 IP 才能调用相关接口;关闭则 所有IP 都可调用。
-
将下载的秘钥放在项目根目录下
安装 miniprogram-ci
npm install miniprogram-ci --save
编写上传脚本
// miniprogram-pro-upload.js
const dayjs = require('dayjs');
const ci = require('miniprogram-ci');
(async () => {
const project = new ci.Project({
appid: '小程序AppID', // 小程序AppID
type: 'miniProgram',
projectPath: 'dist/build/mp-weixin', // 打包文件路径
privateKeyPath: 'pro.key', // 秘钥路径
});
const uploadResult = await ci.upload({
project,
version: '1.5.6', // 版本号
desc: `体验版本更新于${dayjs().format('YYYY-MM-DD HH:mm:ss')}`, // 自定义备注
setting: {
es6: true,
},
onProgressUpdate: console.log,
});
console.log(uploadResult);
})();
脚本额外使用了
dayjs来备注代码上传时间,可自行修改
npm install dayjs
上传体验版
node ./miniprogram-pro-upload.js
上传完毕后显示如下结果就表示上传成功了
设置体验版
在 "微信公众平台-管理-版本管理" 或 "小程序助手-审核管理-开发版" 中选择 ci机器人1 提交的版本设置为体验版
这个步骤只需 执行一次 ,后续如果更换 ci机器人 再选择对应的开发版设置为体验版即可