用途:在 GitHub Actions 中通过 OpenID Connect(OIDC)与 Provenance 实现无长期令牌的 npm 安全发布,并排查相关配置问题。
主要能力:说明 Trusted Publishing 用短期签名令牌替代 NPM_TOKEN;给出工作流权限、Node.js 版本、package.json 元数据要求;提供发布步骤与错误码排查(400、404、422、403);附带校验脚本 node <path-to-skill>/scripts/validate.mjs <path-to-package.json>,检查 repository.url 的 .git 后缀、id-token: write 权限、registry-url 冲突及 Node 版本。
必要用法:工作流需声明 permissions: id-token: write 与 contents: read;使用 Node v20+、npm v9.5.0+(Trusted Publishing 需 npm v11.5.1+,即 Node v24+);package.json 的 repository.url 需与仓库匹配;发布命令为 npm publish --provenance --access public --registry https://registry.npmjs.org/。新包须先在本地 npm login 后 npm publish --access public 创建,再到 npmjs.com 的 Package Settings → Trusted Publishing 配置 GitHub Actions 映射(Organization、Repository、Workflow filename,Environment 留空),并勾选 Allow npm publish。需先提交 .github/workflows/publish.yml 再配置映射,且用真实 Git 标签推送触发发布。
限制:npm 不支持 Pending Publishers,未发布的包无法直接配置 Trusted Publishing;OIDC 校验对 repository.url 格式敏感;不再需要 NPM_TOKEN。