背景:
开发过程中,我的项目中需要使用@type/node这个依赖,如下图:
@type/node中又依赖了一个undici-types的包,如下图:
现在想要升级undici-types的版本,由于@type/node官网暂时并没有使用最新版本的undici-type依赖,所以只能通过其他方式在本地强制使用新版本undici-types。
具体做法如下:
在自己项目的package.json中,使用npm的overrides来覆盖@type/node中设置的undici-type的版本,也就是通过overrides告诉@type/node不下载它里面设置的undici-type的版本,而是下载overrides设置的版本。图片如下:
然后执行npm install。安装后,可以在node module中看到下载的undici-type不在是@type/node中的版本,而是我们通过overrides设置的版本。图片如下:
所以当想要覆盖默认版本的依赖,下载某个特定版本时,就用overrides就行。写法就是通过json的层次关系表示要覆盖哪个包中的那个依赖,最后写上版本号就行,文章中截图对应如下:
"overrides": {
"@types/node": {
"undici-types": "~6.6.1"
}
}