Angular项目使用Azure私有NPM源安装依赖报mime@1.6.0不存在错误
问题原因
你当前配置的npm源是Azure DevOps的私有feed,该feed未同步mime@1.6.0版本的公共包,而你项目的间接依赖send明确要求该版本的mime包,因此安装时触发版本匹配失败报错。
解决方法
- 方法1:手动将
mime@1.6.0同步到你的Azure私有feed
登录你的Azure DevOps组织,进入对应feed的管理页面,使用「上游源」功能触发公共npm源的包同步,也可以手动上传mime@1.6.0的包到该feed中,同步完成后重新执行npm install即可。 - 方法2:临时切换npm源为公共源安装
如果你不需要强制所有包都走私有源,可以在安装时临时指定公共npm源,执行命令:
安装完成后再恢复原有.npmrc配置即可。npm install --registry=https://registry.npmjs.org - 方法3:调整.npmrc配置区分作用域源
在你的.npmrc文件中配置仅自有作用域的包走私有源,其余公共包走公共npm源,避免公共包缺失问题,配置示例:
配置完成后重新执行@<你组织的自定义作用域>:registry=https://pkgs.dev.azure.com/<yourOrganization>/_packaging/<yourFeed>/npm/registry/ registry=https://registry.npmjs.org always-auth=truenpm install即可。 - 方法4:使用overrides强制指定mime可用版本
注意:overrides配置仅支持npm 8.3.0及以上版本
如果你确认其他版本的mime兼容send包的要求,可以在package.json中添加overrides配置,将send依赖的mime强制指定为你的私有源中存在的版本:
配置完成后重新执行{ "overrides": { "send": { "mime": "<私有源中存在的可用mime版本号>" } } }npm install即可。
内容的提问来源于stack exchange,提问作者Mahesh Dharwad
相关产品推荐
相关产品推荐

