首先需要创建一个version.json文件 里面写入(我的版本号是年_月_日_当天打包次数)
{
"version":"v3.0_2024_7_13_8"
}
在创建一个version.js文件 里面写入 在打包的时候判断是不是当天,如果是就在末尾自增,不是就变成当天并且初始次数为0
// version.js
const fs = require('fs');
const path = require('path');
function updateVersion() {
const date = new Date();
const year = date.getFullYear(); // 获取当前年份
const month = date.getMonth() + 1; // 获取当前月份(注意月份是从0开始计数的,需要加1)
const day = date.getDate(); // 获取当前日期
const packageJson = require('./public/version.json');
const versionParts = packageJson.version.split('_');
if(versionParts[1]==year&&versionParts[2]==month&&versionParts[3]==day){
// 假设我们只增加最后一位,实际可以根据需求自定义逻辑
ersionParts[4]++;
}else{
versionParts[1]=year
versionParts[2]=month
versionParts[3]=day
versionParts[4]=0
}
packageJson.version = versionParts.join('_');
fs.writeFileSync(path.resolve(__dirname, './version.json'), JSON.stringify(packageJson, null, 2));
}
module.exports = {
updateVersion
};
然后再package.json 添加命令,或者再原来的打包命令上添加都可。我下面都给写上了,注意空格,不然会报错。
// package.json
{
"scripts": {
"build": "vue-cli-service build",
"version": "node -e \"require('./path/to/version').updateVersion()\" && vue-cli-service build",
"custom-build": "npm run version"
}
}
如果这么写,就运行npm run custom-build 下面图片是我写的,我就运行原来的命令
注意引入文件的路径问题,路径要引入正确