|
小程序打包发布自动化流程
现有问题
- 测试无法发布自己想要的版本。
- vue的代码打包成VX小程序的代码。
- 打包完成的代码,无法推送到VX开发者平台。
- 构建完毕后,无法用对应的环境直接测试。
相关的依赖和配置
打包成VX需要的格式
- vue-cli-service uni-build 安装对应的vue脚手架
- 运维平台直接build成固定的VX包,不区分环境。构建完成的文件在 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",
推送打包完成的代码到VX平台
- 安装 miniprogram-ci
- 在开发 mp.weixin.qq.com/ 中开发管理/开发设置/小程序代码上传 指定固定的ip白名单
- 在开发 mp.weixin.qq.com/ 中开发管理/开发设置/小程序代码上传 生成小程序代码上传密钥
const ci = require('miniprogram-ci');
const config = require('./config.json'); // 发布的版本信息
const manifest = require('../manifest.json'); // VX小程序的基本信息
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/**/*'],
});
- 直接上传
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)
})
- 发布完成也是带有预览功能,生成了二维码图片扫码使用。
至此的构建,上传,发布等功能已经完成。
使用方式
- 运维平台从git 仓库拉去指定文件分支打包。
- 拉取完毕执行 npm build 生成基于正式环境的打包的文件。
- 测试需要测试环境的小程序,发布的时候需要选择对应的环境。
- 运维平台替换前台指定的全局环境变量。
- 替换后自动发布,自动预览。测试可以通过预览二维码进行访问具体的小程序。
开发流程
- 用vscode进行开发,起对应的环境,默认开热更新。
- 用VX小程序进行调试和预览。
- VX配置文件里面 填写当前版本号和版本更新描述。
|
|