Angular13 codelyzer与@angular/core依赖安装死循环如何解决
Angular 13 与 codelyzer 审计升级死循环解决方案
问题根因
这个循环是npm审计规则的版本匹配错误导致的:codelyzer@0.0.28是2017年发布的早期废弃版本,根本不是6.0.2的后续安全更新,npm误判版本映射才会给出错误的升级指引,强制升级后自然无法适配Angular 13版本。
操作步骤
- 第一步:修正package.json中的依赖版本,将codelyzer的版本固定为适配Angular13的最终可用版本,移除版本号前的
^前缀,避免被自动升级到错误版本:"devDependencies": { "@angular/core": "~13.3.11", "codelyzer": "6.0.2" } - 第二步:删除项目根目录下的
node_modules文件夹、package-lock.json文件,清除之前错误安装的依赖缓存。 - 第三步:重新执行
npm install完成依赖安装,不要执行npm audit fix --force全量强制升级命令。 - 第四步:屏蔽codelyzer的误报审计提示:
执行npm audit --exclude codelyzer即可跳过这个包的无效审计检查,后续再处理其他依赖的安全告警时,单独针对确认存在漏洞的包做定向升级即可。
补充说明:codelyzer本身已经停止维护,Angular官方从12版本开始就推荐迁移到
@angular-eslint方案作为替代,6.0.2是适配Angular 13的最后一个可用版本,不存在需要降到0.0.28的安全更新要求,相关审计提示完全无效。
内容的提问来源于stack exchange,提问作者Anant Doshi
相关产品推荐
相关产品推荐

