vue项目npm run build的时候自动更新package.json中的version
在vue项目最外侧新增一个addVersion.js 脚本,脚本中编写逻辑来解析当前的版本号
// addVersion.js
const fs = require('fs');
const path = require('path');
const packageJsonPath = path.join(__dirname, 'package.json');
try {
// 读取 package.json 文件内容
const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf8');
const packageJson = JSON.parse(packageJsonContent);
// 解析版本号
const versionParts = packageJson.version.split('.');
const major = parseInt(versionParts[0], 10);
const minor = parseInt(versionParts[1], 10);
const patch = parseInt(versionParts[2], 10);
// 根据需要自增版本号
// 例如,这里我们仅对补丁版本号进行自增
patch += 1;
// 构建新的版本号
const newVersion = `${major}.${minor}.${patch}`;
// 更新 package.json 中的版本号
packageJson.version = newVersion;
// 将更新后的内容写回 package.json 文件
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
console.log(`New version set to: ${newVersion}`);
} catch (error) {
console.error('Error updating version:', error);
}
然后,你可以像之前一样在 package.json 的 scripts 部分修改build命令来运行这个脚本:
"scripts": {
"start": "npm run serve",
"build": "node ./src/addVersion.js && vue-cli-service build",
}
当你运行 npm run build 时,它将会先执行 add-version 脚本以增加版本号。
另外,有的系统可能希望获取当前的年月日作为第3位,那么修改addVersion.js中的逻辑,新增方法getCurrentDateString。
function getCurrentDateString() {
const now = new Date();
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
const day = now.getDate().toString().padStart(2, '0');
const currentDateAsString = `${year}${month}${day}`;
return currentDateAsString;
}
然后在patch赋值那边,获取getCurrentDateString的值即可。
const patch = this.getCurrentDateString();
浙公网安备 33010602011771号