尝试运行命令时出现以下错误
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.
答案 0 :(得分:15)
就我而言,它缺少node_modules
文件夹。确保在更新之前运行npm i
。
答案 1 :(得分:5)
答案 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。您可以根据您的情况交换当前和目标角度版本。在迁移到更高版本之前,请确保您的所有依赖项都可以在您的目标版本上运行。