pnpm publish
发布一个包到注册表。
pnpm [-r] publish [<tarball|folder>] [--tag <tag>]
[--access <public|restricted>] [options]
当在一个工作空间内发布时,工作空间根目录的 LICENSE 文件将和package
一起打包。(除非package
有专属的许可证)
您可以在发布之前使用 package.json
publishConfig 字段覆盖某些字段。 您还可以使用 publishConfig.directory
自定义发布的子目录(通常使用第三方构建工具)。
递归运行此命令时 (pnpm -r publish
),pnpm 将发布所有版本尚未发布到注册表的package
。
配置项
--recursive, -r
从工作区发布所有包。
--json
以 JSON 格式显示信息。
--tag <tag>
使用给定的tag
发布package
。 默认情况下, 在执行pnpm publish
时会更新 latest
的 tag
。
示例:
#在 foo 包目录
pnpm publish --tag next
# 在项目中,你想用 foo 的 next 版本
pnpm add foo@next
--access <public|restricted>
告知软件源所发布的包是公开的还是受限制的。
--no-git-checks
不检查当前的分支是否为发布分支、分支是否干净和、是否和与远程同步。
--publish-branch <branch>
- 默认值: master 和 main
- 类型: String
用于发布最新更改的仓库的主分支。
--force
尝试发布 packages
,即使在注册表中的版本已存在。
--report-summary
将已发布的packages
的列表保存到 pnpm-publish-summary.json
。 这在使用其他一些工具来报告已发布packages
的列表时很有用。
pnpm-publish-summary.json
的示例:
{
"publishedPackages": [
{
"name": "foo",
"version": "1.0.0"
},
{
"name": "bar",
"version": "2.0.0"
}
]
}
--dry-run
执行发布包的所有流程,但不会把包发布到软件源上。
--otp
当发布包需要双因素身份验证(2FA)时,此选项可以指定一个一次性密码。
--filter <package_selector>
配置
你还可以在 .npmrc
文件中设置 git-checks
和 publish-branch
选项。
示例:
.npmrc
git-checks=false
publish-branch=production
生命周期
prepublishOnly
prepublish
prepack
prepare
postpack
publish
postpublish