4.1 KiB
4.1 KiB
发包脚本使用指南
Kode 项目提供了两套发包流程,用于不同的发布场景:
🚀 快速使用
开发版本发布 (测试用)
npm run publish:dev
正式版本发布
npm run publish:release
📦 发包策略
1. 开发版本 (dev tag)
- 目的: 内部测试和预发布验证
- 版本格式:
1.1.16-dev.1,1.1.16-dev.2 - 安装方式:
npm install -g @shareai-lab/kode@dev - 特点:
- 自动递增 dev 版本号
- 不影响正式版本的用户
- 可以快速迭代测试
2. 正式版本 (latest tag)
- 目的: 面向最终用户的稳定版本
- 版本格式:
1.1.16,1.1.17,1.2.0 - 安装方式:
npm install -g @shareai-lab/kode(默认) - 特点:
- 语义化版本控制
- 严格的发布流程
- 包含完整的测试和检查
🛠️ 脚本功能详解
开发版本发布 (scripts/publish-dev.js)
自动化流程:
- ✅ 检查当前分支和工作区状态
- 🔢 自动生成递增的 dev 版本号
- 🔨 构建项目
- 🔍 运行预发布检查
- 📤 发布到 npm 的
devtag - 🏷️ 创建 git tag
- 🔄 恢复 package.json (不提交版本变更)
使用场景:
- 功能开发完成,需要内部测试
- PR 合并前的最终验证
- 快速修复验证
安全特性:
- 临时修改 package.json,发布后自动恢复
- 失败时自动回滚
- 不污染主分支版本号
正式版本发布 (scripts/publish-release.js)
交互式流程:
- 🔍 检查分支 (建议在 main/master)
- 🧹 确保工作区干净
- 📡 拉取最新代码
- 🔢 选择版本升级类型:
- patch (1.1.16 → 1.1.17): 修复 bug
- minor (1.1.16 → 1.2.0): 新功能
- major (1.1.16 → 2.0.0): 破坏性变更
- custom: 自定义版本号
- ✅ 确认发布信息
- 🧪 运行测试和类型检查
- 🔨 构建项目
- 📝 提交版本更新
- 🏷️ 创建 git tag
- 📤 发布到 npm (默认
latesttag) - 📡 推送到 git 仓库
安全特性:
- 交互式确认,避免误发布
- 测试失败时自动回滚版本号
- 完整的 git 历史记录
🎯 最佳实践
开发流程建议
# 1. 开发功能
git checkout -b feature/new-feature
# ... 开发代码 ...
git commit -am "feat: add new feature"
# 2. 发布开发版本测试
npm run publish:dev
# 安装测试: npm install -g @shareai-lab/kode@dev
# 3. 测试通过后合并到主分支
git checkout main
git merge feature/new-feature
# 4. 发布正式版本
npm run publish:release
版本号管理
- 开发版: 基于当前正式版本自动递增
- 正式版: 遵循 语义化版本 规范
- Git 标签: 自动创建,格式
v1.1.16
标签管理
# 查看所有版本
npm view @shareai-lab/kode versions --json
# 查看 dev 版本
npm view @shareai-lab/kode@dev version
# 查看最新正式版本
npm view @shareai-lab/kode@latest version
🔧 故障排除
常见问题
发布失败怎么办?
- 脚本会自动回滚 package.json
- 检查错误信息,修复后重新运行
版本号冲突?
- 开发版本会自动递增,不会冲突
- 正式版本发布前会检查是否已存在
权限问题?
- 确保已登录 npm:
npm whoami - 确保有包的发布权限
Git 相关错误?
- 确保有 git 推送权限
- 检查远程仓库配置:
git remote -v
手动清理
# 如果发布过程中断,可能需要手动清理
git tag -d v1.1.16-dev.1 # 删除本地标签
git push origin :v1.1.16-dev.1 # 删除远程标签
📊 监控和分析
# 查看包下载统计
npm view @shareai-lab/kode
# 查看所有版本的详细信息
npm view @shareai-lab/kode versions --json
# 测试安装
npm install -g @shareai-lab/kode@dev
kode --version
通过这套双发包系统,你可以:
- 🚀 快速发布开发版本进行内部测试
- 🛡️ 安全发布正式版本给最终用户
- 📈 保持清晰的版本管理和发布历史
- ⚡ 自动化大部分重复操作,减少人为错误