terminal
terminal
--dev、--optional 或 --peer,否则包会写入 dependencies。如果 package.json 已经在其他分组中列出了该包,则会在原位置更新该条目。
--dev
别名 —
--development,-d,-D"devDependencies")添加:
terminal
--optional
将包作为可选依赖("optionalDependencies")添加:
terminal
--peer
将包作为对等依赖("peerDependencies")添加:
terminal
devDependencies 条目。
--exact
别名 —
-E--exact。Bun 会将确切的版本号写入 package.json,而不是版本范围。
terminal
package.json 中的区别:
package.json
terminal
--catalog
在工作区中,--catalog 会将版本写入根目录的 package.json catalog,并将 "catalog:" 添加到当前包。--catalog=<name> 使用命名目录(workspaces.catalogs.<name>),并写入 "catalog:<name>"。
terminal
package.json
packages/app/package.json
- 如果目录中已经存在条目,则会复用该条目,并且只将
"catalog:"写入当前包。传入显式版本(bun add react@19 --catalog)可替换该条目——这会影响所有引用它的包 - 如果未指定版本,则会将当前
package.json中已有的范围("react": "^18.2.0")加入目录 - 已经引用
"catalog:<name>"的包会继续使用该目录 - 名称必须使用
=连接:--catalog=testing,而不是--catalog testing - Tarball 和 git 说明符会以包的实际名称加入目录。相对路径和工作区包会被拒绝
react,bun add react(不带版本)也会写入 "catalog:"。传入版本则会写入具体范围。
--filter
别名 —
-F!pattern 用于排除。
terminal
*匹配每个工作区包,但不匹配根目录。要包含根目录,请指定其名称:--filter '*' --filter '<root-name>'- 如果没有工作区匹配,则不会写入任何内容,并且命令会失败
- 本地路径从当前目录解析,并重写为相对于每个选定包的路径
bun.lock会为整个仓库更新,但只有选定的工作区会链接到node_modules,与bun install --filter一样- 不能与
--global组合使用
--global
别名 —
bun add --global、bun add -g、bun install --global 和 bun install -g-g/--global 标志。这不会修改当前项目的 package.json。使用它来安装命令行工具。
terminal
配置全局安装行为
配置全局安装行为
bunfig.toml
受信任的依赖
与其它 npm 客户端不同,Bun 不会执行已安装依赖的任意生命周期脚本,如postinstall。这些脚本存在安全风险,可能在您的机器上执行任意代码。
要让 Bun 允许特定包的生命周期脚本,请在您的 package.json 中将该包添加到 trustedDependencies。
package.json
my-trusted-package 的生命周期脚本。
Git 依赖
添加来自公共或私有 Git 仓库的依赖:terminal
安装私有仓库时,系统需具备相应的 SSH 凭据以访问该仓库。
github、git、git+ssh 和 git+https。
package.json
Tarball 依赖
包名可以对应一个公开托管的.tgz 文件。Bun 会从该 tarball URL 下载并安装包,而不是从包注册表安装。
terminal
bun add 会将 URL 写入你的 package.json:
package.json
CLI 使用方法
依赖管理
boolean
不安装 devDependencies。别名:
-pstring
安装时排除
dev、optional 或 peer 依赖boolean
全局安装。别名:
-gboolean
添加依赖到
devDependencies。别名:-dboolean
添加依赖到
optionalDependenciesboolean
添加依赖到
peerDependenciesboolean
添加精确版本,而非
^ 范围。别名:-Eboolean
仅在
package.json 中不存在该依赖时才添加string
将解析后的版本添加到根目录
package.json 的 catalog 中,并以 catalog: 的形式依赖它;
—catalog=NAME 指向 catalogs.NAMEstring
将软件包添加到匹配的工作区,而不是当前软件包。别名:
-F项目文件与锁文件
boolean
生成
yarn.lock 文件(yarn v1)。别名:-yboolean
不更新
package.json 或保存锁文件boolean
default:"true"
保存到
package.jsonboolean
不允许修改锁文件
boolean
将依赖添加到项目
package.json 的 trustedDependencies 并安装该包boolean
保存为文本格式的锁文件
boolean
仅生成锁文件,不安装依赖
安装控制
boolean
不执行实际安装
boolean
总是从注册表请求最新版本并重新安装所有依赖。别名:
-fboolean
跳过新下载包的完整性校验
boolean
跳过项目
package.json 中的生命周期脚本(依赖的脚本永远不会执行)boolean
递归分析并安装作为参数传入文件的依赖(使用 Bun 的打包器)。别名:
-a网络与注册表
string
提供证书颁发机构签名证书
string
与
—ca 相同,但通过证书文件路径提供string
默认使用指定注册表,覆盖
.npmrc、bunfig.toml 和环境变量number
default:"48"
最大并发网络请求数
性能与资源
string
default:"clonefile"
用于安装依赖的平台特定优化方式。可选值为
clonefile、hardlink、
symlink 或 copyfilenumber
生命周期脚本的最大并发任务数(默认值:CPU 核心数的 2 倍)
缓存
string
从指定目录路径存储和加载缓存数据
boolean
完全忽略清单缓存
输出与日志
boolean
不输出任何日志
boolean
输出超详细日志
boolean
关闭进度条
boolean
不打印总结信息
全局配置与上下文
string
指定配置文件路径(
bunfig.toml)。别名:-cstring
设置当前工作目录
帮助
boolean
显示此帮助菜单。别名:
-h