拿到旧版本的 Angular 项目运行遇到的问题:cli 是 10.xx 版本,core 包是 8.0 版本

1. 实践一

执行 ng serve 报错:

This version of CLI is only compatible with Angular versions ^10.0.0-beta || >=10.0.0 <11.0.0,
but Angular version 8.0.0 was found instead.
Please visit the link below to find instructions on how to update Angular.
https://angular-update-guide.firebaseapp.com/

百度的解决方案:npm install --save-dev @angular/cli@latest

未能解决问题…… 

2. 实践二

执行后报错如下,翻译过来就是指定 10.0.0 版本的 cli:

解决方案:

  1. 删除 node_modules 目录下的 ng 库( node_modules 文件夹下 angular 文件夹)
  2. 在该项目下重新安装 指定版本 的 cli:npm install @angular/cli@10.0.0  --save

注意:--save 是安装到当前项目, 对全局没影响,就是说只会更新当前项目的 cli,不会影响本机全局的 cli

未能解决问题……

3. 实践三

我打算把本机全局的 cli 版本降级,更换成项目中的版本,再次运行,不过还是失败了

本机全局的 cli 在:C盘/用户/XX/AppData/Roaming/npm/node_modules

去除 package.json 版本号前的 “ ^ ”,就是去除锁版本,然后删除 package.lock.json 文件,重新 npm i,失败

4. 实践四

后来经过检查 package.json 发现:cli 是 10.xx 版本 ,但是 ng 的 core 包是 8.0 版本

我改了 cli 的版本 (10.x.x → 8.0.0),删除了项目中的 node_moudles,重新执行 npm i,如下图:

成功解决问题

5. 总结

这个错误非常的少见,当局者迷,当拿到一个旧版本 Angular 项目时,应该:

  1. 【法一】先查看 package.json 中的 cli 、core 版本是否一致,不一致要将 cli 更改为 core 的版本,执行 npm i
  2. 【法二】如果失败了,要先卸载更新本地(项目) cli,再卸载更新全局(本机) cli,使得全局 cli 和本地 cli 一致

卸载更新本地(项目) cli:

  1. 卸载:npm uninstall @angular/cli --save(或手动删除项目中的 node_modules/@angular 文件夹)
  2. 更新:npm install @angular/cli@10.0.0  --save (根据提示的 cli 版本进行安装)

卸载更新全局(本机) cli:

  1. 卸载:npm uninstall @angular/cli -g
  2. 更新:npm install @angular/cli@~10.0.0 -g (更成和当前项目一致)
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lyrelion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值