| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- /**
- * 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}`);
|