包'@ angular / cli'不是依赖项

时间:2019-09-02 04:58:29

标签: angular angular-cli

尝试运行命令时出现以下错误

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.

4 个答案:

答案 0 :(得分:15)

就我而言,它缺少node_modules文件夹。确保在更新之前运行npm i

答案 1 :(得分:5)

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

npm i -g @angular/cli@8.0.0

ng update --all --force

请阅读github上的this问题

答案 2 :(得分:3)

我遇到了同样的问题/错误消息,因为我切换了完全不同的分支并且尚未在分支上运行npm install来获取当前安装的版本,此版本此时为Angular7。完成之后,我再次运行以下命令以安装最新版本;角度8:

ng update @angular/cli @angular/core

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

答案 3 :(得分:0)

假设您要从 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

如果您在运行上述命令时遇到任何 Peer 依赖警告,请运行 npm uninstallfluence_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 @angular-devkit/schematics

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