Yarn配置resolutions覆盖嵌套依赖版本未在yarn.lock生效问题
问题原因说明
你当前的配置已经实际生效,嵌套依赖的axios版本已经完成升级,无需额外调整
为什么你觉得没生效?
yarn.lock的结构分为两部分:
- 第一部分是所有依赖的版本解析规则:你lock里的
axios@^0.21.1, axios@^0.21.2: version "0.21.4"已经明确说明,所有符合^0.21.1、^0.21.2范围要求的axios,都会统一安装0.21.4版本,这个版本已经完全满足高于0.21.1的安全要求。 - 第二部分是每个包自身声明的依赖范围:你看到
@dep/xyz的dependencies里写的axios "^0.21.1"只是这个包本身打包时声明的依赖版本范围,不是项目实际安装的版本,所以这行内容不会因为你的resolutions配置发生变化。
验证方式
执行以下命令查看项目中实际安装的所有axios版本:
yarn list axios
输出结果会显示整个依赖树中所有axios的实际安装版本都是0.21.4。
可选优化点
- resolutions的规则可以简化,不需要写多层通配符,直接配置
"axios": "^0.21.2"就能匹配所有层级的axios依赖 - 如果担心缓存影响,可以执行
yarn install --force强制重新生成lock文件,确保规则完全生效
内容的提问来源于stack exchange,提问作者nisha
相关产品推荐
相关产品推荐

