微信小程序CI自动化上传脚本

背景:

多人开发时,通过微信小程序工具上传代码体验版都会不同,需要不断频繁切换体验码/仅限某个人仅限代码上传。

解决方案:

通过微信小程序 miniprogram-ci 脚本 + git 操作进行代码上传

官方文档地址:概述 | 微信开放文档

步骤:

1.密钥及 IP 白名单配置

使用 miniprogram-ci 前应访问"微信公众平台-开发-开发设置"后下载代码上传密钥,并配置 IP 白名单 开发者可选择打开 IP 白名单,打开后只有白名单中的 IP 才能调用相关接口。我们建议所有开发者默认开启这个选项,降低风险 代码上传密钥拥有预览、上传代码的权限,密钥不会明文存储在微信公众平台上,一旦遗失必须重置,请开发者妥善保管

!注意:上传密钥需要保存到指定文件,防止丢失

2.安装miniprogram-ci

vsvscode打开小程序项目,在终端安装ci:

npm install miniprogram-ci

3.创建文件夹及相关文件

安装完 CI 插件后会自动创建 package.json 文件,需要在同级目录创建一个deploy文件夹(命名自定义),并创建 index.js 文件,把第一步下载的上传密钥放在 weapp.key 文件中

上传密钥

上传思路:

上传时怎么获取当前体验版版本号+版本备注信息?

普通的CI上传已不能满足多人多分支的需求,可结合git+本地文件版本号获取线上体验版信息

代码实现:

在 package.json 文件中定义相关项目版本信息,定义 wxconfig 对象,本地读取版本号 + 备注,在上传时进行更改并上传(并同步到远程git)

注:需要额外安装 prompts node交互插件(原生nodejs终端交互已不能满足需求,后面会解释)

安装 prompts 插件 官方文档

npm install --save prompts

注:在 package.json 文件中的 miniprogram-ci 跟 prompts 需要声明在 devDependencies 对象内,而非默认的 dependencies 。

官方文档说明

index.js 文件(内容不做解释,部分复杂的已做注释)

/**
 * 修改版本号并自动上传脚本思路
 * 1.获取传进来的参数 √
 * 2.根据参数进行逻辑处理 √
 * 3.获取package.json中的version参数 √
 * 4.修改version的值写入package.json文件 √
 * 5.git提交package.json文件 √
 * 6.微信自动上传脚本上传到体验版 √
 */

const prompts = require('prompts')
const fs = require('fs').promises // 使用 fs.promises API 来获取异步方法
// 异步子进程
const exec = require('child_process').exec
const ci = require('miniprogram-ci')
const path = require('path')

// 引入package文件内容
const packageJSON = require('../package.json')

// prompts取消时 ctrl + c 不然主动退出会打印错误
const onCancel = (prompt) => {
  process.exit()
}

// exec异步封装成异步函数
function execAsync(command) {
  return new Pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值