大家好,第一次写文章。最近在搞公司的uniapp快速开发模板,发现微信小程序没有一键部署的功能,之前taro是有插件的。于是打算自己写一个脚本来实现该功能,现在给大家分享下这个脚本。 基础架构 uniapp 3.0 + vue3.0 + vite2.x
下载官方插件
首先我们需要下载微信小程序的发布插件
npm install miniprogram-ci -D
获取秘钥
之后去小程序的后台管理系统 开发 -> 开发管理 -> 开发设置 -> 小程序代码上传 把小程序代码上传秘钥下载下来,并把IP白名单关掉,因为公司网络一般会变,复制下当前APPid
准备工作
在src同级目录创建一个keys文件夹,将刚才的上传秘钥放到文件夹下,名字应该是wx + appid + .key.如果不是改为这个,后面脚本需要。
脚本编写
在src同级下创建一个deploy.js文件
const ci = require('miniprogram-ci')
const path = require('path')
const dotenv = require("dotenv") // 读取环境变量用
const envType = process.argv[process.argv.length - 1]; // 获取传入的环境变量名称
dotenv.config({path: `.env.${envType}`}) // 读取环境变量
const WX_APPID = process.env.VITE_WX_APPID //
const WX_VERSION = '1.0.0'; // 版本号
const WX_DESC = '备注' // 备注
; (async () => {
const project = new ci.Project({
appid: WX_APPID,
type: 'miniProgram',
projectPath: path.join(__dirname, './dist/build/mp-weixin'), // 获取打包的路径
privateKeyPath: path.join(__dirname, `./keys/${WX_APPID}.key`), // 你要上传的小程序APPid
ignores: ['node_modules/**/*'],
})
await ci.upload({
project,
version: WX_VERSION,
desc: WX_DESC,
robot: WX_ROBOT,
setting: {
es7: true,
minifyJS: true, // 压缩 JS 代码
minify: true // 压缩所有代码,对应小程序开发者工具的 "压缩代码"
},
onProgressUpdate: console.log,
})
})()
配置环境变量
.env.test文件
# 微信小程序appid
VITE_WX_APPID=xxxx
package.json
注意在打包命令后用node执行你刚才写的脚本,脚本后面的是你的环境变量名称,因为不是项目内部的脚本,所以需要你把环境变量名传进去。这样你就可以实现开发,测试,预生产,生产不同环境不需每次都修改APPID,而是自动读取环境变量中的APPID来实现一键发布了。
"build:weixin-test": "uni build --mode test -p mp-weixin && node deploy.js test",