uniapp打包发布自动化流程

3,419 阅读2分钟

小程序打包发布自动化流程

现有问题

  • 测试无法发布自己想要的版本。
  • vue的代码打包成微信小程序的代码。
  • 打包完成的代码,无法推送到微信开发者平台。
  • 构建完毕后,无法用对应的环境直接测试。

相关的依赖和配置

  1. 打包成微信需要的格式

    1. vue-cli-service uni-build 安装对应的vue脚手架
    2. 运维平台直接build成固定的微信包,不区分环境。构建完成的文件在 dist/dev/mp-weixin 里面
        "build": "cross-env NODE_ENV=prod UNI_PLATFORM=mp-weixin vue-cli-service uni-build --report",
         "prod": "cross-env NODE_ENV=prod UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch",
         "stg": "cross-env NODE_ENV=stg UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch",
    
  2. 推送打包完成的代码到微信平台

    1. 安装 miniprogram-ci
    2. 在开发 mp.weixin.qq.com/ 中开发管理/开发设置/小程序代码上传 指定固定的ip白名单
    3. 在开发 mp.weixin.qq.com/ 中开发管理/开发设置/小程序代码上传 生成小程序代码上传密钥
     const ci = require('miniprogram-ci');
     const config = require('./config.json'); // 发布的版本信息
     const manifest = require('../manifest.json'); // 微信小程序的基本信息
     let { wxVersion: version, wxDesc: desc } = config;
     const appid = manifest['mp-weixin'].appid;
     const cwd = process.cwd() + '/dist/dev/mp-weixin';
     if (!version) version = 'v1.0.0';
     if (!desc) desc = new Date() + '上传';
     const project = new ci.Project({
          appid: appid,
          type: 'miniProgram',
          projectPath: cwd,
          privateKeyPath: process.cwd() + '/src/wxupload/private.wxea2e525a470f0b4d.key', // 秘钥
          ignores: ['../node_modules/**/*'],
     });
    
    1. 直接上传
        ci.upload({
            project,
            version,
            desc,
            setting: {
              minify: true,
        },
        }).then(res => {
            console.log(res)
            console.log('上传成功')
        }).catch(error => {
             if (error.errCode == -1) {
              console.log('上传成功')
             }
            console.log(error)
            console.log('上传失败')
            process.exit(-1)
        })
    
    
    1. 发布完成也是带有预览功能,生成了二维码图片扫码使用。
  3. 至此的构建,上传,发布等功能已经完成。

使用方式

  1. 运维平台从git 仓库拉去指定文件分支打包。
  2. 拉取完毕执行 npm build 生成基于正式环境的打包的文件。
  3. 测试需要测试环境的小程序,发布的时候需要选择对应的环境。
  4. 运维平台替换前台指定的全局环境变量。
  5. 替换后自动发布,自动预览。测试可以通过预览二维码进行访问具体的小程序。

开发流程

  1. 用vscode进行开发,起对应的环境,默认开热更新。
  2. 用微信小程序进行调试和预览。
  3. 微信配置文件里面 填写当前版本号和版本更新描述。