4

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

ng更新@角/材料

这将 Angular Material 包更新到 8.1.2,但也将 @angular/* 包升级到了一个相当奇怪的不受欢迎的版本:~9.0.0-next.0

Angular Material 7 -> 8 升级效果

这是有问题的(我必须摆脱需要 Angular <= 8 的非必要开发依赖项),因为我不想超越最新的稳定版本 8

我应该如何解决这个问题?

4

2 回答 2

6

问题是,在运行之前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

于 2019-07-31T19:53:09.933 回答
2

社区似乎认为这是一个错误。请参阅: https ://github.com/angular/angular-cli/issues/14980 (向下滚动)。

于 2019-08-07T15:41:00.273 回答