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(); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南