从角度5一直更新到角度9,角度材料@ 7

时间:2020-02-16 19:43:48

标签: angular

我有一个项目,该项目的维护成本已经低了一年多了,那时的Web开发向前发展了很多。所以现在我的任务是将Angular从5更新到9。我已经能够成功升级到Angular 7,但是当将angular / material库更新到版本7时,我得到了这些:

ng更新@ angular / material @ 7

              Package "codelyzer" has an incompatible peer dependency to "@angular/compiler" (requires ">=2.3.1 <8.0.0 || >7.0.0-beta <8.0.0" (extended), would install "9.0.1").
              Package "@angular/http" has an incompatible peer dependency to "@angular/platform-browser" (requires "7.2.16" (extended), would install "9.0.1").
              Package "codelyzer" has an incompatible peer dependency to "@angular/core" (requires ">=2.3.1 <8.0.0 || >7.0.0-beta <8.0.0" (extended), would install "9.0.1").*

当检查角度/材质的依赖关系时,我找不到它与这些库中的任何一个都具有依赖关系,那么为什么还要尝试更新它们呢?以及为什么要使用9.0.1版本,因为听起来有点像Angular 9?

编辑

现在我明白了原因。 @ angular / material @ 7软件包具有例如用^ 7.3.2定义的依赖项。此表示法使其获取最新的软件包,即9.0.1版(或当前的9.0.2版)。但是其他codelyzer和@ angular / http版本不支持此新版本。

那么,如何在npm中更新软件包,以使它在package.json中使用注明的依赖版本,而不是最新的依赖版本?

1 个答案:

答案 0 :(得分:0)

取决于应用程序的大小(如果它不大的话),我建议直接升级到9。但是要帮助您解决此问题,您可能应该运行:

npm i @angular/compiler@9 @angular/platform-browser@9 @angular/core@9

从这个错误看来,您有一些库已更新为需要上述依赖项的版本9的版本。