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

sha*_*nda 6 angular-cli angular

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

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.
Run Code Online (Sandbox Code Playgroud)

eag*_*gor 74

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

  • 是的,要更新项目,必须事先安装所有软件包。通过反复试验发现。谢谢! (5认同)

Nim*_*zzz 29

首先将所有更改提交到 repo,然后尝试以下命令。

npm i -g @angular/cli@8.0.0
Run Code Online (Sandbox Code Playgroud)

ng update --all --force
Run Code Online (Sandbox Code Playgroud)

请在github上阅读这个问题

  • 从 Angular 13 开始 --all 均已弃用 (19认同)

atc*_*way 11

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

ng update @angular/cli @angular/core

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


Ham*_*fri 11

假设您要从 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
Run Code Online (Sandbox Code Playgroud)

如果您在运行上述命令时遇到任何对等依赖项警告,请运行npm uninstall受影响的包名称,然后运行以下步骤:

 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
Run Code Online (Sandbox Code Playgroud)

成功更新后,您可以运行npm uninstall @angular-devkit/schematics 。

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

  • 谢谢。对我帮助很大。如果package,json中不存在,还需要安装@angular/cli。 (2认同)

jen*_*ent 5

由于需要,在一次炸弹爆炸后运行了这个--force

前一个ng update已经到此为止并已删除node_modules

在与一起运行之前必须首先reset进行分支和操作。npm cing update--force