bump-version.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /**
  2. * bump-version.js — 构建时自动递增 package.json 版本号
  3. * 用法: node scripts/bump-version.js [patch|minor|major]
  4. * 默认 patch,每次 npm run build 前自动执行 +0.0.1
  5. */
  6. const fs = require('fs');
  7. const path = require('path');
  8. const pkgPath = path.resolve(__dirname, '..', 'package.json');
  9. const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
  10. const current = pkg.version;
  11. const parts = current.split('.').map(Number);
  12. if (parts.length !== 3 || parts.some(isNaN)) {
  13. console.error(`[bump-version] 无效版本号: ${current}`);
  14. process.exit(1);
  15. }
  16. const type = process.argv[2] || 'patch';
  17. switch (type) {
  18. case 'major':
  19. parts[0] += 1;
  20. parts[1] = 0;
  21. parts[2] = 0;
  22. break;
  23. case 'minor':
  24. parts[1] += 1;
  25. parts[2] = 0;
  26. break;
  27. case 'patch':
  28. default:
  29. parts[2] += 1;
  30. break;
  31. }
  32. const next = parts.join('.');
  33. pkg.version = next;
  34. fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n', 'utf-8');
  35. console.log(`[bump-version] ${current} → ${next}`);