Yarn中是否可将指定依赖解析为其他不同的npm包?
解决方案
完全可以实现,包管理器支持通过别名规则将原有依赖指向其他名称的包,具体操作如下:
如果你使用 Yarn 包管理器
在项目的package.json文件中新增resolutions字段配置即可:
{ "resolutions": { "xmldom": "npm:@xmldom/xmldom@^0.8.10" } }
配置完成后重新执行yarn install安装依赖即可。npm:前缀会明确告知Yarn,所有对xmldom包的依赖请求,都解析为NPM源上的@xmldom/xmldom包,你可以根据需求调整后面的版本号到符合安全要求的版本。
如果你使用 NPM 包管理器
对应配置为package.json中的overrides字段,写法如下:
{ "overrides": { "xmldom": "npm:@xmldom/xmldom@^0.8.10" } }
配置完成后执行npm install生效。
验证与兼容性说明
- 依赖安装完成后,可执行
yarn why xmldom(Yarn环境)或npm ls xmldom(NPM环境)验证解析结果,确认所有深层依赖的xmldom都已经被替换为指定的@xmldom/xmldom版本。 @xmldom/xmldom是原xmldom官方更名后的维护版本,API基本完全兼容旧版,替换后绝大多数场景不会出现功能异常,建议替换完成后跑一遍项目相关测试确保兼容性即可。
内容的提问来源于stack exchange,提问作者Austin Brown
相关产品推荐
相关产品推荐

