随笔 - 122  文章 - 0  评论 - 10  阅读 - 18万

vue项目npm run build的时候自动更新package.json中的version

在vue项目最外侧新增一个addVersion.js 脚本,脚本中编写逻辑来解析当前的版本号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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命令来运行这个脚本:

1
2
3
4
"scripts": {
    "start": "npm run serve",
    "build": "node ./src/addVersion.js && vue-cli-service build",
}

当你运行 npm run build 时,它将会先执行 add-version 脚本以增加版本号。

另外,有的系统可能希望获取当前的年月日作为第3位,那么修改addVersion.js中的逻辑,新增方法getCurrentDateString。

1
2
3
4
5
6
7
8
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的值即可。

1
const patch = this.getCurrentDateString();

  

posted on   技术高超  阅读(527)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示