跳至主要内容
版本: 9.x

pnpm publish

将包发布到注册表。

pnpm [-r] publish [<tarball|folder>] [--tag <tag>]
[--access <public|restricted>] [options]

在工作区内发布包时,工作区根目录的 LICENSE 文件将与包一起打包(除非包本身有许可证)。

可以使用 package.json 中的 工作区 字段 publishConfig 在发布之前覆盖某些字段。还可以使用 publishConfig.directory 自定义发布的子目录(通常使用第三方构建工具)。

当递归运行此命令(pnpm -r publish)时,pnpm 将发布所有尚未发布到注册表的包。

选项

--recursive, -r

发布工作区中的所有包。

--json

以 JSON 格式显示信息。

--tag <tag>

使用给定的标签发布包。默认情况下,pnpm publish 更新 latest 标签。

例如

# inside the foo package directory
pnpm publish --tag next
# in a project where you want to use the next version of foo
pnpm add foo@next

--access <public|restricted>

告诉注册表发布的包应该是公开的还是受限的。

--no-git-checks

不要检查当前分支是否为发布分支、干净且与远程分支同步。

--publish-branch <branch>

  • 默认: mastermain
  • 类型: 字符串

用于发布最新更改的存储库的主要分支。

--force

即使包的当前版本已在注册表中找到,也尝试发布包。

--report-summary

将已发布包的列表保存到 pnpm-publish-summary.json。当使用其他工具来报告已发布包的列表时很有用。

pnpm-publish-summary.json 文件的示例

{
"publishedPackages": [
{
"name": "foo",
"version": "1.0.0"
},
{
"name": "bar",
"version": "2.0.0"
}
]
}

--dry-run

执行发布所需的所有操作,但不会实际发布到注册表。

--otp

在发布需要双重身份验证的包时,此选项可以指定一次性密码。

--filter <package_selector>

阅读有关过滤的更多信息。

配置

您也可以在 .npmrc 文件中设置 git-checkspublish-branch 选项。

例如

.npmrc
git-checks=false
publish-branch=production

生命周期脚本

  • prepublishOnly
  • prepublish
  • prepack
  • prepare
  • postpack
  • publish
  • postpublish