跳到主要内容
版本:Next

pnpm 发布

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 标签。

例如:

# 在 foo 包目录内
pnpm publish --tag next
# 在需要使用 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 <包选择器>

了解更多关于过滤的内容

配置

你还可以在 pnpm-workspace.yaml 文件中设置 gitCheckspublishBranch 选项。

例如:

pnpm-workspace.yaml
gitChecks: false
publishBranch: production

生命周期脚本

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