PNPM配置overrides未替换loader-utils版本的原因咨询
问题原因及解决方法
为什么overrides没生效?
你当前的overrides写法"loader-utils@1.4.0": "^1.4.1"是仅针对“明确请求精确版本1.4.0的loader-utils”才会触发替换。但babel-loader@8.2.3实际声明的依赖是loader-utils@^1.2.3(范围版本),pnpm是从这个允许的版本范围里挑选了1.4.0,并没有任何依赖直接请求loader-utils@1.4.0这个精确版本,所以你的规则没匹配上,自然不会替换。
正确的配置方式
修改package.json里的pnpm overrides配置,去掉精确版本的限定,直接指定要替换的目标版本范围:
"pnpm": { "overrides": { "loader-utils": "^1.4.1" } }
如果只想替换1.x分支的loader-utils(不影响2.x版本),可以写成:
"pnpm": { "overrides": { "loader-utils@^1.0.0": "^1.4.1" } }
验证修改
执行pnpm install重新生成lock文件后,再查看babel-loader的依赖项,就能看到loader-utils已经被替换成^1.4.1范围内的版本(比如1.4.2)。
内容的提问来源于stack exchange,提问作者PBrown
相关产品推荐
相关产品推荐

