Package '@angular/cli' is not a dependency

I am getting the following error when I try to run the command

ng update @angular/cli @angular/core --allow-dirty

Repository is not clean.  Update changes will be mixed with pre-existing changes.
Using package manager: 'npm'
Collecting installed dependencies...
Found 28 dependencies.
Package '@angular/cli' is not a dependency.
106729 次浏览

首先将所有更改提交给回购,然后尝试执行以下命令。

npm i -g @angular/cli@8.0.0

还有

ng update --all --force

Please read 这个 issue on github

我遇到了同样的问题/错误消息,因为我切换了截然不同的分支,还没有在分支上运行 npm install来获得当前版本的安装,这个版本现在是角度7。完成之后,我再次运行以下命令来安装最新版本:

ng update @angular/cli @angular/core

这次没有出现错误,升级成功。似乎升级过程正在寻找有效的文件,以了解它的更新版本,如果有一个丢失或空的 node_modules文件夹,Angular 不能确切地告诉正在更新,并会抛出这个错误。这样做是有意义的,因为 CLI 的行为会根据升级的旧版本和升级的版本数而有所不同,所以如果没有可读的升级版本,CLI 就无法继续。

在我的情况下,它是缺少 node_modules文件夹。请确保运行 npm i之前更新。

Assuming you are upgrading from Angular 8.0 to Angular 9.0 follow the following steps:

 1. rm -rf node_modules package-lock.json
2. npm install @angular-devkit/schematics@8
3. ng update @angular/core@8 @angular/cli@8
4. ng update @angular/core@9 @angular/cli@9

如果在运行以上命令时遇到任何对等依赖性警告,请运行 卸载受影响的 _ package _ name,然后运行以下步骤:

 1. npm i
2. ng update @angular/core@8 @angular/cli@8
3. ng update @angular/core@9 @angular/cli@9
4. npm i compatible_affected_package_name

更新成功后可以运行 Npm uninstall@angle-devkit/schema

注意 : 始终遵循 Angular update Guide。您可以根据您的情况交换当前和目标角度版本。在升级到更高的版本之前,要确保所有的依赖项都可以在目标版本上工作。

因为需要 --force引爆,所以在爆炸后才能运行。

之前的 ng update已经走了这么远,删除了 node_modules

在使用 ng update--force运行之前,必须先使用 reset分支和 npm ci

  1. “ Repository is not clean”意味着您有需要提交或隐藏的更改。

  2. "Package '@angular/cli' is not a dependency." to fix run npm install in your project directory.

角点不能更新的原因之一可能是不满足最小 node.js 版本。最新的角 cli (编写本文时为 v14)需要 v14或更高版本的 nodejs。在这种情况下,你必须做到以下几点:

nvm i v14
ng update @angular/cli @angular/core
ng v (to check angular cli version)