1. 依赖树分析与诊断
- 使用 npm ls 包名 命令查看依赖树,定位哪些包引入了冲突版本
- npm outdated 列出过时的依赖项,npm audit 检测存在安全漏洞的陈旧依赖
2. 依赖去重(dedupe)
- npm dedupe 命令遍历本地包树,尝试将可共享的同版本依赖提升到更高层级
- 例如包 A 依赖 lodash@4.17.0、包 B 依赖 lodash@4.17.20,dedupe 会合并为单一版本
- 该操作不会安装新模块,仅重新组织现有依赖结构
3. 版本覆盖(overrides)
- npm 8.3+ 支持在 package.json 中配置 overrides 字段,强制所有嵌套依赖解析到指定版本
- 示例:"overrides": { "lodash": "4.17.21" } 可将整个依赖树中的 lodash 统一锁定
- 支持精确路径覆盖,如 "overrides": { "package-a>lodash": "4.17.21" } 仅针对特定依赖路径生效
- 使用 overrides 后需进行回归测试,因为强制统一版本可能破坏依赖旧 API 的包