Angular 10迁移至11遇ETARGET错误,如何忽略缺失依赖版本?
解决Angular 10迁移到11时npm ETARGET版本缺失错误
试试这几个可行的解决办法:
1. 临时锁定依赖版本
通过package.json的resolutions字段,强制指定@ruf/material为一个已发布的兼容版本(比如找存在的beta版或稳定版,示例用5.2.0-beta6):
{ "resolutions": { "@ruf/material": "5.2.0-beta6" } }
保存文件后执行npm install,再重新运行迁移命令:
ng update @angular/core@11 @angular/cli@11 --force
2. 用--legacy-peer-deps替代--force
Angular CLI支持传递npm参数,试试用--legacy-peer-deps忽略依赖版本冲突,同时避免拉取不存在的版本:
ng update @angular/core@11 @angular/cli@11 --legacy-peer-deps
这个参数会让npm采用旧的依赖解析逻辑,跳过peer依赖的版本不匹配检查,也不会强制请求不存在的包版本。
3. 排查并修复间接依赖
先定位是哪个依赖间接引用了不存在的@ruf/material@5.2.0-beta7:
npm ls @ruf/material
找到对应的依赖包后,将其更新到兼容Angular 11的版本,从根源上解决错误版本引用的问题。
内容的提问来源于stack exchange,提问作者Chetan Oswal
相关产品推荐
相关产品推荐

