Angular 6升级至10及NPM包更新时对等依赖问题咨询
Angular跨版本升级对等依赖问题解决方案
一、查询第三方包适配版本的简便方法
不用手动到Github查询版本说明,直接通过npm内置命令即可拉取指定包所有版本的对等依赖要求:npm view angular-user-idle@* peerDependencies
如果需要快速定位支持Angular7的版本,可配合过滤命令:
- Linux/Mac环境:
npm view angular-user-idle@* peerDependencies | grep -B1 -A1 '"@angular/core": ".*7.*"' - Windows环境:
npm view angular-user-idle@* peerDependencies | findstr /R /C:"@angular/core.*7" /C:"version"
运行后即可直接得到适配Angular7的angular-user-idle版本号。
二、--force与--legacy-peer-deps的使用建议
可以使用--legacy-peer-deps临时忽略对等依赖报错,完成Angular版本升级后再统一处理依赖适配:
--legacy-peer-deps的作用是恢复npm v6版本的依赖安装逻辑,仅跳过对等依赖不匹配的报错,不会强制修改依赖树的版本结构,不会引入隐性运行时问题,适合跨多版本升级的临时场景。- 禁止使用
--force参数:该参数会强制覆盖冲突的依赖版本,极有可能导致依赖逻辑不兼容,出现无明确报错的功能异常问题,后期排查成本极高。
三、额外注意事项
- 升级操作前先备份当前的
package.json、package-lock.json(或yarn.lock),或在独立的Git分支上操作,出现问题可快速回滚。 - 升级到Angular10版本后,再统一梳理所有第三方依赖的适配版本,逐个替换为兼容Angular10的对应版本,再进行完整的功能测试,确认无兼容性问题后再合并到主分支。
- 如果你使用yarn作为包管理器,查询对等依赖的对应命令为
yarn info angular-user-idle peerDependencies --all。
内容的提问来源于stack exchange,提问作者user5417542
相关产品推荐
相关产品推荐

