package.json 中 npm 的 "overrides" 和 Yarn 的 "resolutions"。两者都为_元依赖_(即你的依赖项的依赖)指定版本范围。
package.json
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