当多个深层第三方包依赖同一个npm包的不同大版本时,有时候轻则npm 装包错误,严重的像react,如果存在不同版本的引用,项目直接报错。
这种时候,多少情况是由某个年久失修的包,依赖一个低版本包导致的,多数情况直接升级到高版本时不会出错的。
还好npm 在8.3.0 之后支持的overrides 关键字,可以指定深层次包进行覆盖安装。
{
"overrides": {
"bar": {
"foo": "1.0.0"
}
}
}
https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides