1.0.14 • Published 2 years ago

ys-pub-cli v1.0.14

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

XX系统接入微信小程序版本发布工具

安装使用

// 需要全局安装
npm i ys-pub-cli -g
# ys-pub-cli s [发布环境] [appid] [小程序根路径] [debug]
ys-pub-cli s prod [appid] ./ debug

一、接入前准备

  1. 小程序代码上传秘钥
    1. 登录小程序后台
    2. 开发管理->开发设置->小程序代码上传->小程序代码上传密钥->生成
  2. 域名白名单

    // 各个环境可自行添加
  3. 联系运维大佬新增对应项目的小程序发布应用

二、项目改造

  1. 创建或修改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" // 项目中需要使用到的依赖
        }
    }

三、注意事项

  1. 小程序版本号
    1. 版本号规则遵循A.B.C的版本迭代规则
    2. 当package.json未传入版本号时,按照最后一次更新上传版本号+0.0.1小版本更新
    3. 当package.json传入版本低于最后一次上传版本号,则按照最后一次更新上传版本号+0.0.1小版本更新
    4. 当package.json传入版本号高于最后一次版本号时,使用传入的版本号
    5. 当package.json未传入版本号,且第一次更新时,则使用默认版本号1.0.0
    6. 第一次接入XX时,需要将版本号设置为1.0.0才能跳过拉取sourceMap文件
  2. 版本说明
    1. 当package.json传入版本说明时,则以传入的版本说明为准
    2. 当package.json未传入版本说明时,则默认为“暂无备注信息,请后续补充完整”
  3. 本地debug
    1. 本地debug运行需要在构建命令中加入debug参数
    2. debug模式时会使用本地的key,key存在在项目根目录(package.json同级),命名为 private.appid.key
  4. 机器人ID
    1. 默认使用机器人ID「1」来进行代码上传,可在后台查看为 开发者:ci机器人1
  5. npm构建
    1. 默认使用npm i --registry=自定义npm源 来安装,若私有源无对应npm包,则需要自行同步
    2. npm小程序版需要进行调整后才能被小程序构建成功,参考文档 https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html
    3. 可在package.json内配置npmBuild是否使用npm构建
  6. 构建和发布路径

    1. 默认使用项目根目录进行构建发布
    2. 可在package.json的script命令内更改发布路径
    3. 构建规则默认使用以下规则

        {
          es6: true, // 对应小程序开发者工具的 "es6 转 es5"
          es7: true, // 对应小程序开发者工具的 "增强编译"
          minifyJS: true, // 压缩 JS 代码
          minifyWXML: true, // 压缩 WXML 代码
          minifyWXSS: true, // 压缩 WXSS 代码
          minify: true, // 压缩所有代码,对应小程序开发者工具的 "压缩代码"
          codeProtect: false, // 对应小程序开发者工具的 "代码保护"
          autoPrefixWXSS: false, // 对应小程序开发者工具的 "样式自动补全"
        }
  7. 环境变量文件

    1. 构建完成后会在publish.js同级目录生成env.config.js文件,可引入该文件进行环境判断
    export default {env:'prod'};
    // 可使用import引入,注意相对路径
    import config from '/path/env.config.js'
    console.log(config.env)
  8. 飞书机器人通知

    1. 可在小程序构建上传完成后通知消息到飞书群
    2. 可在package.json配置robotApi

四、XX系统接入

  1. 新建发布项目
  2. 提交秘钥key文件给运维大佬存放

    /destination/miniprogram-ci-key/miniprogram-ci-[appid].key

    如果只有一个小程序,则可使用同一份key,不同环境按照appid进行区分,并在package.json的script中进行区分

  3. 运维大佬配置对应环境的构建命令和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 $?
  4. 分环境构建

    1. 固定命令为 npm run start:install,此命令为空命令,原因在于XX系统默认只有执行命令才会提前执行npm install 命令安装环境,但小程序后续不需要构建build,所以后续命令置空即可

五、发布流程及注意事项

  1. 正常发布流程
  2. 构建过程中仅为执行 npm install按照环境依赖
  3. 部署后才会在k8s镜像中进行上传操作,上传事件会有延迟,预估在1-5分钟内
  4. 本版本不支持上传后预览,如果需要预览,请移步mp后台进行配置预览路径等操作
1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago