VUE项目打包自动更新版本号
此方法只针对 Vue
如果使用其他框架,可以此参照作为参考
一、先看效果
二、创建 buildVersion.js
文件
文件内容 目前只针对3位版本号
递增规则是 每次更新 加一次小版本,10次小版本向前递增一个版本。如:1.0.9
递增后 1.1.0
let fs = require("fs");
const getPackageJson = () => {
// 读取文件
let data = fs.readFileSync("./package.json");
// 转换为 JSON 对象
return JSON.parse(data);
};
let packageData = getPackageJson();
const updateVersion = () => {
let version = packageData.version.split(".");
let major = parseInt(version[0]); // 主版本号
let minor = parseInt(version[1]); // 次版本号
let patch = parseInt(version[2]); // 小版本号
// 检查并更新版本号
if (patch < 9) {
patch++; // 递增小版本号
} else {
patch = 0; // 重置小版本号
if (minor < 9) {
minor++; // 递增次版本号
} else {
minor = 0; // 重置次版本号
major++; // 递增主版本号
}
}
// 更新版本号
packageData.version = `${major}.${minor}.${patch}`;
// 获取当前日期和时间
let now = new Date();
let formattedDate = `${now.getFullYear()}-${String(
now.getMonth() + 1
).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")} ${String(
now.getHours()
).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}:${String(
now.getSeconds()
).padStart(2, "0")}`;
// 更新最后打包时间
packageData.lastBuildTime = formattedDate;
};
updateVersion();
fs.writeFile(
"./package.json",
JSON.stringify(packageData, null, "\t"),
(err) => {
if (err) {
console.log("写入版本失败", err);
} else {
console.log("写入版本成功 " + packageData.version);
}
}
);
三、修改packjson里面,scripts命令
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "node ./buildVersion.js && vue-cli-service build"
}
执行npm run build:prod
后自动更新version
和lastBuildTime