SuperAPI AI 工具集

automate-npm-release

部署与运维

查看项目

更新于 10-16 22:15

技能介绍

用途

该技能用于搭建 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 校验会失败。
  • 私有工作区根目录不应发布,必须从实际包目录发布。
  • 资料未提供具体价格、收费、平台支持范围或效果保证等信息。