Skip to content

版本 / 废弃 / 发布

共享库的版本策略和发布纪律,消费方也要了解(影响升级)。

版本策略(0.x 阶段)

  • 破坏性变更 = 升 minor0.0.x → 0.1.0);修复 / 新增 = 升 patch
  • ⚠️ npm ^ 在 0.x 下不会自动升 minor^0.0.1 = >=0.0.1 <0.1.0
    • 消费方装了 ^0.0.1,不会自动收到 0.1.0 —— 发布 minor 后需手动 pnpm add @flowporr/x@^0.1.0 显式跟进

废弃

  • 发布出去的版本一律不 npm unpublish(已装消费方 lockfile integrity 会失配)
  • 废弃用 npm deprecate <pkg>@<ver> "已废弃,请用 xxx" 或发布新版本
  • 仅在私有、确认无外部消费时才允许 unpublish

发布流程

统一用仓库里的 scripts/publish.mjs

bash
# 构建 + 校验 + 按依赖序发布全部
node scripts/publish.mjs

# 只发布指定包
node scripts/publish.mjs ai-server

脚本自动做:按依赖拓扑构建 → 校验 dist/types → 检查 workspace:* → 逐包发布 → 打印消费方升级提示。

发布底线(不用脚本时)

  1. pnpm build 按拓扑
  2. 校验 dist/types/index.d.ts 存在
  3. pnpm publish不是 npm publish——后者不改写 workspace:*,发布会残留字面 workspace:*
  4. 登录用 npm login_authToken(JWT),禁止手写 _auth(Basic Auth 会导致包元数据缺 author,Web UI 发布人显示"匿名")
  5. 发布顺序:ai-core → x-sender → x-markdown-vue → ai-chat-vue → ai-server

公共 API 稳定性

  • index.ts 是唯一公共出口;内部实现不导出
  • 新增导出走 export *删除 / 改名导出 = 破坏性变更 → 升 minor