用到依赖
- miniprogram-ci. wx提供的上传微信包的工具,脚手架打包完成后,执行它提供的api实现文件上传
- vue.config.js vue脚手架的配置,默认没有这个文件,我们需要添加打包完成后的回调里面调用miniprogram-ci的api上传文件, 配置参考 | Vue CLI
vue.config.js
是一个可选的配置文件,如果项目的 (和package.json
同级的) 根目录中存在这个文件,那么它会被@vue/cli-service
自动加载。你也可以使用package.json
中的vue
字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。
vue.config.js
const updated=require("./updated")
const webpack = require('webpack')
module.exports = {
chainWebpack: config => {
config.plugin('done')
.use(require('webpack').ProgressPlugin, [
{
handler: (percentage, message, ...args) => {
console.log("done !!@!@!@!@:", percentage, message)
//当percentage为1时候说明打包完成,在这里调用上传函数
updated()
},
},
]);
}
}
上传配置
上传需要配置小程序的key以及本次上传的改动说明,具体看下面代码
key是单独文件放在某个目录里面,在上面updated函数里面给配置配置好读取的key的目录文件
update函数实现
module.exports=async()=>{
const ci = require("miniprogram-ci");
const path = require("path");
const project = new ci.Project({
appid: "wxsomeappid",//appid
type: "miniProgram",
projectPath: process.cwd(),//项目的路径,需要修改
privateKeyPath: process.cwd() + "/privateKey.key",//key所在的路径,也需要改
ignores: ["node_modules/**/*"],
});
ci.upload({
project,
version: "1.0.3",
desc: "desc",//本次改动备注
setting: {
es6: true, // es6 转 es5
disableUseStrict: true,
autoPrefixWXSS: true, // 上传时样式自动补全
minifyJS: true,
minifyWXML: true,
minifyWXSS: true,
minify: true,
},
});
}
上传过程中会自动的输出log,
直到看到{"_status":"done","_msg":"upload","_id":"xxx"},整个项目上传成功
官方文档
官方文档概述 | 微信开放文档