# 发布流程

# 发布前准备

  1. 确认 npm 登录状态
  2. 确认仓库代码已提交
  3. 确认 CI 测试通过
  4. 确认 package.json 中包名、入口、files 配置正确

# 常见发布模式

# 模式一:固定版本(fixed)

所有包共用一个版本号,适合强绑定组件库。

# 模式二:独立版本(independent)

每个包独立升级,适合包之间变更频率不同的仓库。

# 标准发布步骤

# 1)检查变更

npx lerna changed
1

# 2)更新版本号并打 tag

npx lerna version
1

该命令会做几件事:

  • 计算要升级的包
  • 更新版本号
  • 生成 git commit 与 git tag

# 3)发布到 npm

npx lerna publish from-git
1

# 常用参数

# 指定预发布版本
npx lerna version prerelease --preid beta

# 使用固定发布权限(示例)
npx lerna publish from-git --yes
1
2
3
4
5

# 典型 CI 发布思路

  • CI 中先执行测试与构建
  • 主分支合并后执行 lerna version(或人工触发)
  • 基于 tag 的流水线执行 lerna publish from-git

# 易踩坑

# 包未发布成功但版本已提交

发布中断后,可能已经打了 tag。
需要先确认 npm 发布状态,再决定是否补发或回滚。

# 私有包误发布

私有包请在 package.json 中加:

{
  "private": true
}
1
2
3

# 2FA 导致 CI 发布失败

开启 npm 2FA 后,需要配置 automation token 或调整发布策略。