release-it 是一个强大的版本发布工具,可以自动化处理版本号更新、变更日志生成和 Git 标签创建。
快速开始
1. 安装依赖
npm install release-it @release-it/conventional-changelog -D
2. 配置 package.json
{
  "scripts": {
    "release": "release-it"
  },
  "release-it": {
    "git": {
      "commitMessage": "chore(release): v${version}",
      "tagName": "v${version}"
    },
    "plugins": {
      "@release-it/conventional-changelog": {
        "preset": "angular",
        "infile": "CHANGELOG.md"
      }
    }
  }
}
Git 提交规范
使用 Angular 提交信息规范:
<type>(<scope>): <subject>
常用类型
- 
feat: 新功能 - 
fix: Bug 修复 - 
docs: 文档变更 - 
style: 代码格式 - 
refactor: 代码重构 - 
test: 测试 - 
chore: 构建工具 
示例
git commit -m "feat(auth): add user login"
git commit -m "fix(api): resolve parsing issue"
git commit -m "docs: update README"
使用方法
日常提交
git add .
git commit -m "feat(components): add button component"
git push
发布版本
npm run release
release-it 会自动:
- 分析提交历史,确定版本类型
 - 更新 package.json 中的版本号
 - 生成/更新 CHANGELOG.md
 - 创建发布提交和标签
 - 推送到远程仓库
 
配置说明
{
  "git": {
    "commitMessage": "chore(release): v${version}",  // 发布提交信息
    "tagName": "v${version}"                         // Git 标签格式
  },
  "plugins": {
    "@release-it/conventional-changelog": {
      "preset": "angular",        // 使用 Angular 规范
      "infile": "CHANGELOG.md"    // 变更日志文件
    }
  }
}
高级用法
手动指定版本
npx release-it patch   # 1.0.0 -> 1.0.1
npx release-it minor   # 1.0.0 -> 1.1.0
npx release-it major   # 1.0.0 -> 2.0.0
预发布版本
npx release-it --preRelease=alpha  # 1.0.0-alpha.0
干运行模式
npx release-it --dry-run
常见问题
Q: 如何跳过某些步骤?
npx release-it --no-git.push      # 跳过推送
npx release-it --no-plugins       # 跳过变更日志
Q: 如何自定义变更日志?
{
  "plugins": {
    "@release-it/conventional-changelog": {
      "preset": {
        "name": "angular",
        "types": [
          {"type": "feat", "section": "Features"},
          {"type": "fix", "section": "Bug Fixes"},
          {"type": "docs", "hidden": true}
        ]
      },
      "infile": "CHANGELOG.md"
    }
  }
}
总结
使用 release-it 的好处:
- 自动化: 减少手动操作
 - 规范化: 强制遵循提交规范
 - 透明化: 自动生成变更日志
 - 简单: 一条命令完成发布
 
遵循规范的提交信息 + 自动化发布流程 = 高效的版本管理。
    
Top comments (0)