bun publish 会将你的包打包成 tarball,并从 package.json 中移除 catalog 和 workspace 协议,必要时解析版本。然后,它会发布到配置文件中指定的 registry。支持 bunfig.toml 和 .npmrc 文件。
terminal
bun pm pack,然后将输出 tarball 的路径传递给 bun publish。
terminal
如果你提供了 tarball 路径,
bun publish 不会运行生命周期脚本(prepublishOnly/prepack/prepare/postpack/publish/postpublish)。只有在 bun publish 自行打包时才会运行这些脚本。--access
--access 用于设置所发布包的访问级别,可以是 public 或 restricted。无作用域的包始终为公开包,使用 --access restricted 发布无作用域包会报错。
terminal
package.json 的 publishConfig 字段中设置 --access。
package.json
--tag
设置所发布包版本的标签。默认标签为 latest。包的初始版本总是会被打上 latest 标签,且会额外打上指定的标签。
terminal
package.json 的 publishConfig 字段中设置 --tag。
package.json
--dry-run
--dry-run 会运行发布流程但不会发布包,因此你可以检查实际会发布哪些内容。
terminal
--tolerate-republish
如果包版本已存在,使用该标志时退出码为 0 而不是 1。在可能重新运行作业的 CI/CD 场景中很有用。
terminal
--gzip-level
设置打包包时使用的 gzip 压缩级别,可设为 0 到 9(默认为 9)。仅适用于不带 tarball 路径参数的 bun publish。
--auth-type
如果你的 npm 账户启用了双因素认证,bun publish 会通过浏览器或 CLI 提示你输入一次性密码。--auth-type 用于告诉 npm registry 你偏好的验证方式:web(默认)或 legacy。
terminal
--otp
直接向 CLI 提供一次性密码。如果密码有效,bun publish 会跳过发布前额外的一次性密码提示:
terminal
bun publish 支持使用 NPM_CONFIG_TOKEN 环境变量,这在通过 GitHub Actions 或其他自动化工作流发布时很有用。CLI 使用方法
terminal
发布选项
string
设置要发布的软件包的访问级别,可以是 你也可以在
public 或 restricted。无作用域的软件包始终是公开的;使用 --access restricted 发布无作用域的软件包会报错。terminal
package.json 的 publishConfig 字段中设置 --access。package.json
string
default:"latest"
设置发布包的版本标签。默认标签是 你也可以在
latest。包的初始版本始终会获得 latest 标签,此外还会标记指定的标签。terminal
package.json 的 publishConfig 字段中设置 --tag。package.json
boolean
模拟发布过程而不实际发布软件包,以便先验证其内容。
boolean
如果要发布的版本已存在于注册表中,
bun publish 将以代码 0 而不是 1 退出。string
default:"9"
指定打包时使用的 gzip 压缩级别。仅适用于未使用 tarball 路径参数的
bun publish。数值范围为 0 到 9(默认值为 9)。string
default:"web"
如果你的 npm 账户启用了双因素身份验证(2FA),
bun publish 会提示你输入一次性密码,你可以通过浏览器或 CLI 完成验证。--auth-type 用于告知 npm 注册表你偏好的验证方式:web(默认)或 legacy。terminal
string
直接向 CLI 提供一次性密码。有效的密码可以跳过发布前额外的一次性密码提示。
terminal
bun publish 支持 NPM_CONFIG_TOKEN 环境变量,因此你可以从 GitHub Actions 或其他自动化工作流中发布。注册表配置
自定义注册表
string
默认使用指定的注册表,覆盖 .npmrc、bunfig.toml 和环境变量。为软件包作用域配置的注册表(在 .npmrc 中设置
@scope:registry=,或在 bunfig.toml 中设置 [install.scopes])仍具有优先级。SSL 证书
string
提供由证书颁发机构(CA)签名的证书
string
证书颁发机构证书文件路径
常规选项
依赖管理
boolean
不安装 devDependencies
string
排除依赖类型:
dev、optional 或 peerboolean
始终从注册表请求最新版本并重新安装所有依赖
脚本控制
boolean
打包和发布时跳过生命周期脚本
boolean
将包添加到 trustedDependencies 并运行其脚本
生命周期脚本 — 发布预构建的 tarball 时,Bun 不会运行
prepublishOnly 和 prepack 等生命周期脚本;只有在 Bun 自行打包软件包时才会运行这些脚本。文件管理
boolean
不更新 package.json 或锁文件
boolean
禁止更改锁文件
boolean
生成 yarn.lock 文件(兼容 yarn v1)
性能
string
平台优化:
clonefile(macOS 上的默认值)、hardlink(Linux 和 Windows 上的默认值)、symlink 或 copyfilenumber
default:"48"
最大并发网络请求数
number
最大并发生命周期脚本数(默认值:CPU 核心数的 2 倍)
输出控制
boolean
禁止所有输出
boolean
显示详细日志
boolean
隐藏进度条
boolean
不打印发布摘要