首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >pnpm >pnpm 的 overrides 覆盖依赖功能如何使用?

pnpm 的 overrides 覆盖依赖功能如何使用?

词条归属:pnpm

1. 覆盖依赖的基本用法

overrides 字段允许强制指定依赖图中任意包的版本,包括传递依赖和对等依赖。该字段只能在项目根目录的 pnpm-workspace.yaml 中设置(pnpm v11 起不再读取 package.json 的 pnpm 字段)。例如 "overrides": {"lodash": "^4.17.21"} 会将整个依赖树中的 lodash 统一锁定到指定版本,用于修复安全漏洞或统一版本。

2. 作用域限定与移除

可通过 > 分隔符限定覆盖的作用范围,如 "foo@1>bar": "2" 表示仅覆盖 foo@1 所依赖的 bar,不影响其他包。若需移除某依赖的可选依赖项以减小安装体积,可使用 "-" 作为值,如 "foo@1.0.0>bar": "-" 会从 foo@1.0.0 的依赖中移除 bar。

3. 收敛覆盖与包扩展

pnpm v11.13.0 引入收敛覆盖(convergence override),通过空范围选择器(如 "form-data@")仅在依赖声明的版本范围允许时统一版本,避免强制不兼容版本。packageExtensions 字段则用于扩展包的元数据,如为缺少对等依赖声明的包补充 peerDependencies,无需修改包本身即可修复生态中的兼容性问题。

相关文章
网友心得—运行jeecgboot-vue3项目可能出现的问题
这是pnpm在读package.json中的配置时出现的问题,pnpm.overrides或者resolutions存在"//",选择删掉,因为依赖源选择好了,在国内应该都有镜像
JEECG
2022-10-25
1.9K0
尤雨溪宣布 Vite 发布 Rolldown-Vite 预览版,性能超级快!
2025 年 5 月 30 日,VoidZero 团队发布了一篇博客,宣布 Rolldown-Vite 的发布预览版!
萌萌哒草头将军
2025-06-07
1.8K0
【速来围观】IAR环境下代码覆盖率功能的使用
在设计测试程序,验证是否所有的代码都被执行到时,就要考虑到代码覆盖率,IAR环境下的代码覆盖率是一个在这方面很有用的功能,且使用方便,今天我们就来讲讲这一功能如何使用 代码覆盖率 当设计测试程序验证是不是多有的代码可以被执行,代码覆盖率是非常有用的功能,并且可以帮你识别不可到达的代码。在IAR环境下,代码覆盖率窗口可以记录报告当前代码的覆盖分析,该分析可以显示出自代码覆盖率功能打开到应用程序停止的地方,每一个模块,代码,函数执行的百分比,另外还会列出所有未被执行的代码表达式。需要注意的一点是在仿真的
用户1605515
2018-04-10
2.2K0
package.json 配置完全解读
package.json 是前端每个项目都有的 json 文件,位于项目的根目录。许多脚手架在搭建项目时也会自动帮我们自动初始化好 package.json。
Leecason
2022-12-16
4.2K0
如何使用PyTorch的量化功能?
在深度学习中,量化指的是使用更少的 bit 来存储原本以浮点数存储的 tensor,以及使用更少的 bit 来完成原本以浮点数完成的计算。这么做的好处主要有如下几点:
AI算法与图像处理
2021-02-05
7.3K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券