/** * bump-version.js — 构建时自动递增 package.json 版本号 * 用法: node scripts/bump-version.js [patch|minor|major] * 默认 patch,每次 npm run build 前自动执行 +0.0.1 */ const fs = require('fs'); const path = require('path'); const pkgPath = path.resolve(__dirname, '..', 'package.json'); const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8')); const current = pkg.version; const parts = current.split('.').map(Number); if (parts.length !== 3 || parts.some(isNaN)) { console.error(`[bump-version] 无效版本号: ${current}`); process.exit(1); } const type = process.argv[2] || 'patch'; switch (type) { case 'major': parts[0] += 1; parts[1] = 0; parts[2] = 0; break; case 'minor': parts[1] += 1; parts[2] = 0; break; case 'patch': default: parts[2] += 1; break; } const next = parts.join('.'); pkg.version = next; fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n', 'utf-8'); console.log(`[bump-version] ${current} → ${next}`);