You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

ng update无法更新@angular/core至9.1.0,求解决方案

解决Angular ng update检测到更新但执行时提示已最新的问题

从你的环境信息能一眼看出核心问题:你的Angular CLI已经升级到9.1.0,但大部分Angular核心包(比如@angular/animations@angular/common等)还停留在9.0.7,同时@angular-devkit相关的构建包也还是0.900.7,和CLI版本不匹配。这种版本碎片化会导致ng update的检测逻辑混乱,出现“检测到更新但执行时提示已最新”的矛盾情况,同时也会引发你遇到的TypeScript泛型错误(Angular 9.0.x不兼容TS 3.8.x,必须升级到9.1.x才行)。

试试下面的步骤来彻底解决:

1. 手动统一所有Angular相关包的版本

打开你的package.json文件,把以下所有包的版本都修改为9.1.0(和CLI版本保持一致):

  • @angular/core
  • @angular/animations
  • @angular/common
  • @angular/compiler
  • @angular/compiler-cli
  • @angular/language-service
  • @angular/platform-browser
  • @angular/platform-browser-dynamic
  • @angular/router
  • @angular-devkit/architect
  • @angular-devkit/build-angular
  • @angular-devkit/build-optimizer
  • @angular-devkit/build-webpack
  • @angular-devkit/core
  • @angular-devkit/schematics
  • @ngtools/webpack

你的@schematics/update已经是0.901.0,和CLI版本匹配,不用修改。

2. 彻底清理依赖缓存并重装

执行以下命令(Windows用户替换对应的删除命令即可):

# 删除node_modules文件夹
rm -rf node_modules
# Windows用户执行:rmdir /s /q node_modules

# 删除package-lock.json(用yarn的话删yarn.lock)
rm package-lock.json
# Windows用户执行:del package-lock.json

# 清理npm缓存
npm cache clean --force

# 重新安装依赖
npm install

3. 验证升级结果

执行ng v检查所有Angular核心包的版本是否都统一为9.1.0,然后运行ng serve看TypeScript的错误是否消失。

如果还是有问题,可以直接用npm命令强制安装指定版本的所有核心包:

npm install @angular/core@9.1.0 @angular/animations@9.1.0 @angular/common@9.1.0 @angular/compiler@9.1.0 @angular/compiler-cli@9.1.0 @angular/language-service@9.1.0 @angular/platform-browser@9.1.0 @angular/platform-browser-dynamic@9.1.0 @angular/router@9.1.0 @angular-devkit/build-angular@0.901.0

这个方法的核心是确保Angular CLI、核心框架包、Devkit构建包三者版本完全一致,从根源上避免版本碎片化导致的工具检测异常。

内容的提问来源于stack exchange,提问作者xinthose

火山引擎 最新活动