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
如果在 bar@4.5.6 中引入了安全漏洞,你可能希望将 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