bun publish 将自动将你的包打包成一个 tarball,从 [package.json] 中剥离目录和工作区协议(必要时解析版本),并发布到你在配置文件中指定的注册表。支持 [bunfig.toml] 和 [.npmrc] 文件。
terminal
bun pm pack 然后使用 bun publish 配合输出 tarball 的路径来分别打包和发布你的包。
terminal
如果提供了 tarball 路径,
bun publish 将不会运行生命周期脚本(prepublishOnly/prepack/prepare/postpack/publish/postpublish)。只有当包是由 bun publish 打包时才会运行脚本。--access
--access 标志可用于设置正在发布的包的访问级别。访问级别可以是 public 或 restricted 之一。未作用域的包始终是公共的,尝试使用 --access restricted 发布未作用域的包将导致错误。
terminal
--access 也可以在你的 [package.json] 的 [publishConfig]字段中设置。
package.json
--tag
设置正在发布的包版本的标签。默认情况下,标签是 latest。包的初始版本除了指定的标签外,还会始终获得 latest 标签。
terminal
--tag 也可以在你的 [package.json] 的 [publishConfig] 字段中设置。
package.json
--dry-run
--dry-run 标志可用于模拟发布过程而不实际发布包。这对于在不实际发布包的情况下验证已发布包的内容很有用。
terminal
--tolerate-republish
如果包版本已存在,则以代码 0 而不是 1 退出。在可能重新运行作业的 CI/CD 中很有用。
terminal
--gzip-level
指定打包包时使用的 gzip 压缩级别。仅适用于没有 tarball 路径参数的 bun publish。值范围为 0 到 9(默认为 9)。
--auth-type
如果您的 npm 账户启用了两因素认证,bun publish 将提示您输入一次性密码。这可以通过浏览器或 CLI 完成。--auth-type 标志可用于告知 npm 注册表您首选的方法。可能的值是 web 和 legacy,默认为 web。
terminal
--otp
直接向 CLI 提供一次性密码。如果密码有效,这将在发布前跳过额外的一次性密码提示。使用示例:
terminal
bun publish 尊重 NPM_CONFIG_TOKEN 环境变量,该变量可以在 github actions
或自动化工作流中发布时使用。CLI 用法
terminal
发布选项
--access 标志可用于设置正在发布的包的访问级别。访问级别可以是 public 或 restricted 之一。无作用域的包始终是公共的,尝试使用 --access restricted 发布无作用域的包将导致错误。terminal
--access 也可以在 package.json 的 publishConfig 字段中设置。package.json
设置正在发布的包版本的标签。默认情况下,标签是
latest。包的初始版本除了指定的标签外,总是被赋予 latest 标签。terminal
--tag 也可以在 package.json 的 publishConfig 字段中设置。package.json
--dry-run 标志可用于模拟发布过程而不实际发布包。这对于在不实际发布包的情况下验证发布包的内容很有用。指定打包包时使用的 gzip 压缩级别。仅适用于没有 tarball 路径参数的
bun publish
值的范围是 0 到 9(默认值为 9)。如果您的 npm 账户启用了两步验证,
bun publish 将提示您输入一次性密码。这可以通过浏览器或 CLI 完成。--auth-type 标志可用于告诉 npm 注册表您偏好的方法。可能的值是 web 和 legacy,默认值是 web。terminal
直接向 CLI 提供一次性密码。如果密码有效,这将在发布前跳过额外的一次性密码提示。示例用法:
terminal
bun publish 尊重 NPM_CONFIG_TOKEN 环境变量,该变量可以在 github actions
或自动化工作流中发布时使用。注册表配置
自定义注册表
指定注册表 URL,覆盖 .npmrc 和 bunfig.toml
SSL 证书
提供证书颁发机构签名证书
证书颁发机构证书文件的路径
发布选项
依赖管理
不安装 devDependencies
排除依赖类型:
dev、optional 或 peer始终从注册表请求最新版本并重新安装所有依赖
脚本控制
在打包和发布期间跳过生命周期脚本
将包添加到 trustedDependencies 并运行它们的脚本
生命周期脚本 — 提供预构建的 tarball 时,不会执行生命周期脚本(prepublishOnly、prepack 等)。
只有当 Bun 自己打包包时才运行脚本。
文件管理
不更新 package.json 或锁文件
禁止更改锁文件
生成 yarn.lock 文件(与 yarn v1 兼容)
性能
平台优化:
clonefile(默认)、hardlink、symlink 或 copyfile最大并发网络请求
最大并发生命周期脚本
输出控制
抑制所有输出
显示详细日志
隐藏进度条
不打印发布摘要