Skip to main content
bun publish 将你的包打包成 tarball,从 package.json 中去除 catalog 和 workspace 协议(必要时解析版本),并发布到配置文件中指定的注册表。支持 bunfig.toml.npmrc 文件。
terminal
要分别打包和发布,先运行 bun pm pack,然后使用输出 tarball 的路径运行 bun publish
terminal
如果提供了 tarball 路径,bun publish 不会运行生命周期脚本(prepublishOnly/prepack/prepare/postpack/publish/postpublish)。仅当 bun publish 自己打包时才会运行脚本。

--access

--access 设置正在发布的包的访问级别,可以是 publicrestricted。无作用域的包始终是公开的,使用 --access restricted 发布无作用域包会报错。
terminal
--access 也可以在 package.jsonpublishConfig 字段中设置。
package.json

--tag

设置正在发布的包版本的标签。默认情况下,标签是 latest。包的初始版本除了指定标签外,始终会被赋予 latest 标签。
terminal
--tag 也可以在 package.jsonpublishConfig 字段中设置。
package.json

--dry-run

--dry-run 运行发布过程但不实际发布包,因此你可以验证将发布的内容。
terminal

--tolerate-republish

如果包版本已存在,以退出码 0 而非 1 退出。在可能重新运行的 CI/CD 作业中很有用。
terminal

--gzip-level

设置打包包时使用的 gzip 压缩级别,范围为 09(默认为 9)。仅适用于没有 tarball 路径参数的 bun publish

--auth-type

如果你的 npm 账户启用了双因素认证,bun publish 会提示你输入一次性密码,可以通过浏览器或 CLI。--auth-type 告诉 npm 注册表你喜欢的方式:web(默认)或 legacy
terminal

--otp

直接向 CLI 提供一次性密码。如果密码有效,bun publish 会在发布前跳过额外的一次性密码提示:
terminal
bun publish 会读取 NPM_CONFIG_TOKEN 环境变量,这在从 GitHub Actions 或其他自动化工作流发布时很有用。

CLI 用法

terminal

发布选项

--access
string
设置所发布包的访问级别,publicrestricted。无作用域的包始终是 public;使用 --access restricted 发布无作用域包会导致错误。
terminal
--access 也可以在 package.jsonpublishConfig 字段中设置。
package.json
--tag
string
default:"latest"
设置所发布包版本的标签。默认标签为 latest。包的初始版本除了指定标签外,始终会获得 latest 标签。
terminal
--tag 也可以在 package.jsonpublishConfig 字段中设置。
package.json
--dry-run
boolean
模拟发布过程而不实际发布包,以先验证其内容。
--gzip-level
string
default:"9"
指定打包时使用的 gzip 压缩级别。仅适用于不带 tarball 路径参数的 bun publish。值范围为 09(默认 9)。
--auth-type
string
default:"web"
如果你的 npm 账户启用了 2FA,bun publish 会提示你输入一次性密码,可以通过浏览器或 CLI 输入。--auth-type 告诉 npm 注册表你偏好的方法:web(默认)或 legacy
terminal
--otp
string
直接向 CLI 提供一次性密码。有效密码会在发布前跳过额外的一次性密码提示。
terminal
bun publish 会检查 NPM_CONFIG_TOKEN 环境变量,因此你可以从 GitHub Actions 或其他自动化工作流中发布。

注册表配置

自定义注册表

--registry
string
指定注册表 URL,覆盖 .npmrc 和 bunfig.toml

SSL 证书

--ca
string
提供证书颁发机构签名证书
--cafile
string
证书颁发机构证书文件路径

发布选项

依赖管理

-p, --production
boolean
不安装 devDependencies
--omit
string
排除依赖类型:devoptionalpeer
-f, --force
boolean
始终从注册表请求最新版本并重新安装所有依赖

脚本控制

--ignore-scripts
boolean
打包和发布期间跳过生命周期脚本
--trust
boolean
将包添加到 trustedDependencies 并运行其脚本
生命周期脚本 — 当你发布预构建的 tarball 时,Bun 不会运行生命周期脚本,如 prepublishOnlyprepack;它们仅在 Bun 自行打包时运行。

文件管理

--no-save
boolean
不更新 package.json 或 lockfile
--frozen-lockfile
boolean
禁止更改 lockfile
--yarn
boolean
生成 yarn.lock 文件(兼容 yarn v1)

性能

--backend
string
平台优化:clonefile(默认)、hardlinksymlinkcopyfile
--network-concurrency
number
default:"48"
最大并发网络请求数
--concurrent-scripts
number
最大并发生命周期脚本数(默认:2 倍 CPU 核心数)

输出控制

--silent
boolean
禁止所有输出
--verbose
boolean
显示详细日志
--no-progress
boolean
隐藏进度条
--no-summary
boolean
不打印发布摘要