ys-pub-cli
v1.0.14
Published
```bash // 需要全局安装 npm i ys-pub-cli -g # ys-pub-cli s [发布环境] [appid] [小程序根路径] [debug] ys-pub-cli s prod [appid] ./ debug ``` ### 一、接入前准备 1. 小程序代码上传秘钥 1. 登录小程序后台 2. 开发管理->开发设置->小程序代码上传->小程序代码上传密钥->生成 2. 域名白名单 ```Apache // 各个环境可自行添加 ```
Downloads
3
Readme
XX系统接入微信小程序版本发布工具
安装使用
// 需要全局安装
npm i ys-pub-cli -g
# ys-pub-cli s [发布环境] [appid] [小程序根路径] [debug]
ys-pub-cli s prod [appid] ./ debug
一、接入前准备
小程序代码上传秘钥
- 登录小程序后台
- 开发管理->开发设置->小程序代码上传->小程序代码上传密钥->生成
域名白名单
// 各个环境可自行添加
联系运维大佬新增对应项目的小程序发布应用
二、项目改造
创建或修改package.json
{ "name": "xxx-system", "version": "3.0.1", // 上传时读取当前版本号,如果比最后一次更新版本号低,则使用最后一次版本号+1 "description": "版本说明", // 当前版本更新说明 "npmBuild": false,// 项目是否需要进行npm构建 "robotApi":"xxxxxx", // 飞书机器人通知地址 "main": "main.js", "directories": { "lib": "lib" }, "scripts": { "start:install": "echo 'dont need run'", // 必须!!npm i 后的空操作(兼容XX现有流程) // node publish.js 环境变量 APPID 小程序根目录路径 "start:test": "ys-pub-cli s test [appid] ./", "start:uat": "ys-pub-cli s uat [appid] ./", "start:prod": "ys-pub-cli s prod [appid] ./", // debug模式需要添加debug参数 "start:test:debug": "ys-pub-cli s test [appid] ./ debug", "start:uat:debug": "ys-pub-cli s uat [appid] ./ debug", "start:prod:debug": "ys-pub-cli s prod [appid] ./ debug", }, "repository": { "type": "git", "url": "xxxx.git" // 项目仓库地址 }, "author": "ovenslove", "license": "ISC", "dependencies": { "wxbarcode": "^1.0.2" // 项目中需要使用到的依赖 } }
三、注意事项
小程序版本号
- 版本号规则遵循A.B.C的版本迭代规则
- 当package.json未传入版本号时,按照最后一次更新上传版本号+0.0.1小版本更新
- 当package.json传入版本低于最后一次上传版本号,则按照最后一次更新上传版本号+0.0.1小版本更新
- 当package.json传入版本号高于最后一次版本号时,使用传入的版本号
- 当package.json未传入版本号,且第一次更新时,则使用默认版本号1.0.0
- 第一次接入XX时,需要将版本号设置为1.0.0才能跳过拉取sourceMap文件
版本说明
- 当package.json传入版本说明时,则以传入的版本说明为准
- 当package.json未传入版本说明时,则默认为“暂无备注信息,请后续补充完整”
本地debug
- 本地debug运行需要在构建命令中加入debug参数
- debug模式时会使用本地的key,key存在在项目根目录(package.json同级),命名为 private.[appid].key
机器人ID
- 默认使用机器人ID「1」来进行代码上传,可在后台查看为 开发者:ci机器人1
npm构建
- 默认使用npm i --registry=[自定义npm源] 来安装,若私有源无对应npm包,则需要自行同步
- npm小程序版需要进行调整后才能被小程序构建成功,参考文档 https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html
- 可在package.json内配置npmBuild是否使用npm构建
构建和发布路径
默认使用项目根目录进行构建发布
可在package.json的script命令内更改发布路径
构建规则默认使用以下规则
{ es6: true, // 对应小程序开发者工具的 "es6 转 es5" es7: true, // 对应小程序开发者工具的 "增强编译" minifyJS: true, // 压缩 JS 代码 minifyWXML: true, // 压缩 WXML 代码 minifyWXSS: true, // 压缩 WXSS 代码 minify: true, // 压缩所有代码,对应小程序开发者工具的 "压缩代码" codeProtect: false, // 对应小程序开发者工具的 "代码保护" autoPrefixWXSS: false, // 对应小程序开发者工具的 "样式自动补全" }
环境变量文件
- 构建完成后会在publish.js同级目录生成env.config.js文件,可引入该文件进行环境判断
export default {env:'prod'}; // 可使用import引入,注意相对路径 import config from '/path/env.config.js' console.log(config.env)
飞书机器人通知
- 可在小程序构建上传完成后通知消息到飞书群
- 可在package.json配置robotApi
四、XX系统接入
新建发布项目
提交秘钥key文件给运维大佬存放
/destination/miniprogram-ci-key/miniprogram-ci-[appid].key
如果只有一个小程序,则可使用同一份key,不同环境按照appid进行区分,并在package.json的script中进行区分
运维大佬配置对应环境的构建命令和dockerfile
FROM xxx-registry-vpc.cn-shenzhen.cr.aliyuncs.com/base/node:12.22.8-alpine3.15 LABEL xxxxx COPY / /release/ ARG build=test ENV BUILD=${build} ENTRYPOINT cd release&&npm install ys-pub-cli -g --registry=https://registry.npmmirror.com/&&npm run start:${BUILD}&&echo $?
分环境构建
- 固定命令为 npm run start:install,此命令为空命令,原因在于XX系统默认只有执行命令才会提前执行npm install 命令安装环境,但小程序后续不需要构建build,所以后续命令置空即可
五、发布流程及注意事项
- 正常发布流程
- 构建过程中仅为执行 npm install按照环境依赖
- 部署后才会在k8s镜像中进行上传操作,上传事件会有延迟,预估在1-5分钟内
- 本版本不支持上传后预览,如果需要预览,请移步mp后台进行配置预览路径等操作