跳到主内容
版本:9.x

pnpm publish

发布一个包到注册表。

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

When publishing a package inside a workspace, the LICENSE file from the root of the workspace is packed with the package (unless the package has a license of its own).

You may override some fields before publish, using the publishConfig field in package.json. You also can use the publishConfig.directory to customize the published subdirectory (usually using third party build tools).

When running this command recursively (pnpm -r publish), pnpm will publish all the packages that have versions not yet published to the registry.

配置项

--recursive, -r

从工作区发布所有包。

--json

以 JSON 格式显示信息。

--tag &lt;tag>

使用给定的 tag 发布 package 。 By default, pnpm publish updates the latest tag.

示例:

#在 foo 包目录
pnpm publish --tag next
# 在项目中,你想用 foo 的 next 版本
pnpm add foo@next

--access &lt;public|restricted>

告知软件源所发布的包是公开的还是受限制的。

--no-git-checks

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

--publish-branch &lt;branch>

  • Default: master and main
  • Types: String

用于发布最新更改的仓库的主分支。

--force

尝试发布 packages,即使在注册表中的版本已存在。

--report-summary

Save the list of published packages to pnpm-publish-summary.json. 这在使用其他一些工具来报告已发布 packages 的列表时很有用。

An example of a pnpm-publish-summary.json file:

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

--dry-run

执行发布包的所有流程,但不会把包发布到软件源上。

--otp

当发布包需要双因素身份验证(2FA)时,此选项可以指定一个一次性密码。

--filter &lt;package_selector>

Read more about filtering.

配置

You can also set git-checks, publish-branch options in the .npmrc file.

示例:

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

生命周期

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