尝试通过ng update升级到Angular Material 8时,获得了@ angular / *版本〜9.0.0-next-0。为什么会有这种差异?

Ale*_*xei 4 angular angular8 angular-material-8

我正在尝试使用此处的说明将Angular 7应用程序升级到Angular 8 。一切顺利,直到最后一步:

ng更新@ angular / material

这将Angular Material软件包更新为8.1.2,但也将@ angular / *软件包升级为一个相当奇怪的不需要的版本:〜9.0.0-next.0

Angular Material 7-> 8升级效果

这是有问题的(我不得不摆脱一个非必需的dev依赖关系,该依赖关系要求Angular <= 8),因为我不想超越最新的稳定版本8

我该如何解决?

Din*_*ino 5

问题是,在运行前,ng update @angular/material你的一些依赖已经上8.2.0@angular/material仍然在7版本。

ng update @angular/material显然,仅检查是否有可用的更新@angular/material-不会检查可能在此途中更新的其他依赖项。因此,当您启动命令时,它会注意到有可用的较新版本,并且继续进行更新。在执行更新之前,其他依赖项也已更新,以及它们在版本8上(并且存在版本9)。

这就是为什么在更新之前必须始终注意所有版本都已对齐的原因。

还有一个小小的观察结果:9.0.0-next.0在您进行更新的一个小时之前发布了。因此,如果您在此之前做过,那么您将不会遇到任何这些问题。

可能的解决方法是手动编辑,package.json并将依赖项的版本更改^9.0.0-next.0^8.2.0