开发者生态
morning
GitHub 为 NPM 引入了分阶段发布和新的安装时控件
2026-05-23
1 阅读
brianmcnulty
返回变更日志 今天,我们将发布两个专注于 npm 供应链安全性的更新: 分阶段发布已全面可用。新的 --allow-* 安装源标志( --allow-file 、 --allow-remote 、 --allow-directory )补充了现有的 --allow-git 标志。两者均可在 npm CLI 11.15.0 或更高版本中使用。分阶段发布已普遍可用 分阶段发布现已在 npm 上普遍可用。预构建的 tarball 不是直接发布立即向消费者提供软件包版本,而是上传到阶段队列,维护人员必须在阶段队列中明确批准它才能安装。该队列在 npmjs.com 和 npm CLI 中都可见。分阶段发布强化了每次发布的存在证明,包括源自非交互式 CI/CD 工作流程的发布以及使用 OIDC 可信发布的发布。在将分阶段包发布到注册中心之前,需要具有 2FA 挑战的人类维护人员批准该包。分阶段发布现已上线,文档也是如此。概述和入门 CLI 参考和权限 受信任的发布者(已更新) 要求 npm CLI 11.15.0 或更高版本需要使用 npm stage 。更新 CI/CD 工作流程以在您想要暂存行为的地方使用 npm stagepublish 而不是 npmpublish。推荐设置 我们建议将分阶段发布与可信发布 (OIDC) 配对。可信发布配置可以限制为 stage-only ,这意味着来自该工作流程的 npm 发布将被拒绝,并且仅接受 npm stage 发布。您的 CI 工作流程继续以非交互方式运行,维护人员稍后会从网站或 CLI 批准暂存版本。您还可以在本地运行 npm stagepublish,但最高价值的设置是 CI 发布到阶段队列并由受信任设备的维护者批准。如果您已经批量管理 2026 年 2 月发布的受信任发布配置,则可以使用它将您的包迁移到分阶段发布。请记住将 CI 工作流程更新到新的 CLI 版本并使用 npm stagepublish 。新的安装源标志在 npm 11.10.0 中,我们引入了 --allow-git 来让您控制 npm install 是否可以解析来自 Git 源的依赖项。从 npm 11.15.0 开始,我们添加了另外三个标志,以便您可以对每个非注册表安装源应用相同的显式允许列表方法: --allow-file :控制从本地文件路径和本地 tarball 进行安装。 --allow-remote :控制从远程 URL 的安装,包括 https tarball。 --allow-directory :控制从本地目录安装。 --allow-git(现有):控制来自任何 Git 源的安装,包括 github: 、 gitlab: 、 git+ URL 和裸所有者/存储库简写。每个标志接受 all (当前默认值)或 none ,也可以在 .npmrc 或 package.json 配置中设置。通过查看我们的文档了解更多信息: npm install 参考( --allow-file 、 --allow-remote 、 --allow-git 变体位于同一页面上) 配置参考 作为 2026 年 2 月公告的提醒, --allow-git 将在下一个主要版本的 CLI ( v12 ) 中将其默认值从 all 更改为 none。新的 --allow-file 、 --allow-remote 和 --allow-directory 标志是 11.15.0 中的新增内容 — 您现在可以通过将它们设置为 none 来选择更严格的行为。加入讨论我们想听听您是如何实施这一计划的。在 GitHub 社区讨论中分享反馈和问题。