用途
该技能用于搭建 npm 包的自动化发布流程。使用前需先判断仓库形态,再加载对应的参考文档:
- 单个可发布包:参见 SINGLE_PACKAGE.md。
- 包含多个独立发布包的工作区 monorepo:参见 MONOREPO.md。
主要能力
- 支持单包仓库的发布自动化:一个 package.json 对应一个 npm 制品,一个 v* 标签映射到一个包。
- 支持 monorepo 发布自动化:多个工作区包独立发布,标签需编码包名(如 cli-v0.1.0),GitHub 发布说明生成需使用明确的同一包的历史标签范围。
- 涉及 bumpp 版本标签、GitHub 发布说明、可信发布(trusted publishing)、provenance 溯源、按包区分的发布标签、changelogithub 发布说明、provenance 徽章、NPM_TOKEN、OIDC 发布等能力。
使用方式与共享规则
- npm 要求每个公开包的首次发布必须手动完成:
npm publish --access public
- 当项目需要时,优先使用 npm 可信发布/OIDC。首次手动发布后在 npmjs.com 上配置该包,然后在 GitHub Actions 中使用 id-token: write。确保 package.json 中的 repository.url 与 GitHub 仓库 URL 完全一致(区分大小写)——这是 provenance 校验所必需的。
- 若使用基于令牌的发布,需为 actions/setup-node 配置 registry-url: https://registry.npmjs.org,以便 NODE_AUTH_TOKEN 能够为 npm publish 完成认证。
- 在 pnpm 工作区中,通过 pnpm pack 打包后再执行 npm publish <tarball> --access public 发布。这样 pnpm 可以重写 workspace:* 依赖,而 npm 负责可信发布/OIDC。changelogithub 仅用于 GitHub 发布说明/发布。
- 发布前始终运行检查、测试和包构建。
- 保持私有工作区根目录不被发布;从实际包目录进行发布。
适用场景
- 设置或修改 npm 发布工作流。
- 搭建 npm 发布流水线。
- 版本号提升(bumpp 版本标签)。
- monorepo 按包发布。
- 生成 changelogithub 发布说明。
- 配置可信发布、provenance 徽章、NPM_TOKEN 或 OIDC 发布。
工作流示例
- EXAMPLE_WORKFLOW.yml —— 单包令牌/provenance 工作流。
- MONOREPO_WORKFLOW.yml —— 使用可信发布和 changelogithub 的按包 monorepo 工作流。
限制
- 首次发布必须手动执行,无法完全自动化。
- 使用可信发布时,package.json 的 repository.url 必须与 GitHub 仓库 URL 完全一致(区分大小写),否则 provenance 校验会失败。
- 私有工作区根目录不应发布,必须从实际包目录发布。
- 资料未提供具体价格、收费、平台支持范围或效果保证等信息。