Skip to main content
Bun 支持 package.json 中 npm 的 "overrides" 和 Yarn 的 "resolutions"。两者都为_元依赖_(即你的依赖项的依赖)指定版本范围。
package.json
默认情况下,Bun 会根据每个包的 package.json 中指定的版本范围,安装所有依赖项和元依赖项的最新版本。假设你的项目有一个依赖项 foo,而 foo 又依赖于 bar。这使得 bar 成为项目的一个_元依赖项_。
package.json
当你运行 bun install 时,Bun 会安装每个包的最新版本。
tree layout of node_modules
如果 [email protected] 中引入了安全漏洞,你可能会想要将 bar 固定到一个不包含该漏洞的旧版本。这就是 "overrides""resolutions" 的用途。

"overrides"

bar 添加到 package.json"overrides" 字段中。Bun 在确定要安装哪个版本的 bar 时,会遵循指定的版本范围,无论它是依赖项还是间接依赖项。
Bun 仅支持顶层的 "overrides",不支持嵌套的 overrides
package.json

"resolutions"

"resolutions" 是 Yarn 对 "overrides" 的替代方案,语法类似。Bun 支持它,以便更轻松地从 Yarn 迁移。 "overrides" 一样,不支持嵌套 resolutions
package.json