包“@angular/cli”不是依赖项

Package '@angular/cli' is not a dependency

当我尝试 运行 命令

时出现以下错误

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.

首先将所有更改提交到存储库,然后尝试执行以下命令。

npm i -g @angular/cli@8.0.0

ng update --all --force

请阅读 this github

上的问题

我 运行 进入了同样的 issue/error 消息,因为我已经切换了 b运行 完全不同但还没有 运行 npm install b运行ch 获取安装的当前版本,此时为 Angular 7. 完成后,我再次 运行 以下以安装最新版本; Angular 8:

ng update @angular/cli @angular/core

这次没有出现错误,升级成功。似乎升级过程正在寻找有效文件以了解它从哪个版本更新,如果 node_modules 文件夹丢失或为空,Angular 无法确定正在更新的内容并将抛出这个错误。这是有道理的,因为 CLI 的行为会根据正在升级的旧版本和正在更新的版本数量而有所不同,因此如果它没有可读取的内容来升级它就无法继续。

在我的例子中,它缺少 node_modules 文件夹。确保 运行 npm i 更新前。

假设您要从 Angular 8.0 升级到 Angular 9.0,请按照以下步骤操作:

 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

如果您在 运行 执行上述命令 运行 npm uninstall affected_package_name 然后 [=32] 时遇到任何对等依赖警告=] 以下步骤:

 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 @angular-devkit/schematics

注意:始终遵循Angular update Guide。您可以根据自己的情况交换当前版本和目标 angular 版本。在迁移到更高版本之前,请确保您的所有依赖项都可以在您的目标版本上运行。

由于需要 --force,在 bomb-out 之后得到了这个 运行。

之前的ng update已经删除了node_modules

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