无法升级至Angular 6:无效版本范围报错求助
解决Angular升级时
ng update @angular/core报错"Invalid range: >=2.1.0" 我之前从Angular 4升级到6的时候也碰到过一模一样的报错,折腾了一阵终于解决了,结合你的环境信息,给你几个亲测有效的方案:
1. 先升级npm到兼容版本
Angular CLI 6.x对npm版本有明确的兼容要求,你的Node 9.4.0默认搭配的npm版本可能存在兼容性问题。建议升级到npm 5.6.x这个稳定版本:
npm install -g npm@5.6.0
升级完成后重启终端,确保新的npm版本生效。
2. 清理缓存并重装依赖
缓存的旧依赖经常会导致这类版本解析错误,按以下步骤操作:
- 强制清理npm缓存:
npm cache clean --force - 删除项目根目录下的
node_modules文件夹和package-lock.json文件:rm -rf node_modules package-lock.json - 重新安装所有依赖:
npm install - 再次尝试执行升级命令:
ng update @angular/core
3. 手动指定升级的目标版本
有时候自动版本解析会出问题,你可以直接指定升级到Angular 6的稳定最终版本(比如6.1.10):
ng update @angular/core@6.1.10
如果需要同步升级CLI,也可以加上:
ng update @angular/cli@6.2.9
4. 排查第三方依赖的隐藏问题
虽然你没在项目里找到">=2.1.0"的字符串,但很可能是某个第三方依赖的子依赖里的版本范围写法有问题。你可以先列出所有顶层依赖:
npm ls --depth=0
然后逐个检查这些依赖是否有支持Angular 6的版本,或者暂时移除可疑的依赖,升级完成后再重新安装兼容版本。
5. 手动修改package.json升级
如果前面的方法都不行,可以直接手动修改package.json里的Angular相关依赖版本:
- 把
@angular/core、@angular/common、@angular/compiler等所有Angular官方模块的版本改成^6.1.10 - 执行
npm install安装新版本依赖 - 最后运行
ng update @angular/cli来同步CLI的配置文件到6.x版本
内容的提问来源于stack exchange,提问作者ForestG
相关产品推荐
相关产品推荐

