You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何npm overrides会覆盖@nestjs/platform-express依赖?求修复方法

问题原因

你使用的嵌套式overrides配置,会让npm将path-to-regexp的版本全局锁定为^8.0.0——只要没有其他更高优先级的限定规则,所有依赖链中的path-to-regexp都会被替换,包括@nestjs/platform-express下express依赖的实例。这是因为npm的overrides嵌套逻辑并非仅限定父包的子依赖,而是会将子包的版本全局统一为指定值(除非有更精确的依赖链限定)。

修复方案

要精确只覆盖@nestjs/serve-static依赖的path-to-regexp,需使用依赖链语法替代嵌套对象,具体配置如下:

修改package.json中的overrides字段:

"overrides": {
  "@nestjs/serve-static>path-to-regexp": "^8.0.0"
}

配置完成后执行以下步骤确保依赖生效:

  • 删除项目根目录下的node_modules文件夹
  • 删除package-lock.json文件
  • 重新运行npm install安装依赖

这种写法会明确告知npm:仅替换@nestjs/serve-static直接依赖的path-to-regexp版本,其他依赖链中的path-to-regexp会保持原版本(比如express依赖的0.1.10)。

内容的提问来源于stack exchange,提问作者Сергей Зимовец

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:43:25