添加Angular Material出现npm ERESOLVE依赖冲突如何修复
安装Angular Material时ERESOLVE依赖冲突修复
错误核心原因
npm v7及以上版本默认开启严格peer依赖校验,当前项目依赖存在明确版本不兼容问题:
- 项目已声明开发依赖
tslint@~6.1.0,实际安装版本为6.1.3 - 项目已声明开发依赖
codelyzer@^0.0.28,该版本要求peer依赖必须为tslint@^3.9.0
两个依赖的版本要求完全冲突,导致依赖解析流程中断。
修复方案
方案1:升级不兼容依赖(优先选择,无后续隐患)
codelyzer@0.0.28 是发布时间较早的旧版本,本身就不支持tslint 6.x,直接升级到兼容版本即可从根源解决问题:
- 卸载旧版codelyzer
npm uninstall codelyzer --save-dev
- 安装适配tslint 6.x的codelyzer版本
npm install codelyzer@^6.0.2 --save-dev
- 重新执行Angular Material添加命令
ng add @angular/material
codelyzer 6.x版本适配Angular 9+、tslint 6.x环境,升级后不会影响原有lint规则的正常运行。
方案2:临时跳过依赖校验(仅应急使用,存在运行风险)
如果暂时无法调整现有依赖版本,可以在执行命令时追加参数让npm跳过严格peer依赖校验:
ng add @angular/material --legacy-peer-deps
如果上述命令仍报错,可替换为--force参数强制执行:
ng add @angular/material --force
警告:该方案会强制npm忽略版本冲突安装依赖,可能后续出现lint规则失效、依赖调用报错等未知问题,生产环境不建议使用。
内容的提问来源于stack exchange,提问作者Pedro Encarnação
相关产品推荐
相关产品推荐

