ng更新为特定的Angular版本

时间:2018-10-24 13:37:33

标签: angular

我想将Angular从5.0版更新到6.1版。 https://update.angular.io/中的说明建议使用ng update @angular/core进行更新。但这会直接更新到版本7,而不是版本6。

ng update的文档建议使用--to将更新为特定版本。但是,这似乎不起作用。使用的确切命令是:ng update @angular/core --to 6.1.0但这将更新为7.0.0

编辑:

我尝试使用--from=5.0.0 --to=6.1.9,但这没用。我注意到我们正在使用angular-cli版本1.6.4。此版本支持--next,根据文档,(Default: false) Install the next version, instead of the latest.应该package.json,但这会将7.0.0更改为使用所有@angular/*软件包的set版本

5 个答案:

答案 0 :(得分:11)

在此处添加此内容,因为它出现在搜索结果中,并且此处提供的答案对我不起作用。

对我有用的是使用ng update @angular/core@7.0.0。这可能应该在《 Angular更新指南》(https://update.angular.io/)中加以说明,但事实并非如此。由于在一次跨多个主要版本升级时,该页面会发出通知,但是使用推荐的命令ng update @angular/core升级到最新版本(可能跨多个主要版本),因此应该改变了。

答案 1 :(得分:6)

您可以使用@符号在所需的每个 软件包上指定版本。当前将recommend approach升级到较新版本(或您指定的版本)的方法是使用以下命令:

ng update @angular/cli @angular/core

在这种情况下,我想升级到8.1.1而不是最新版本的8.2.0,我将使用以下内容:

ng update @angular/cli@8.1.1 @angular/core@8.1.1

这与进行here中所述的任何npm安装时指定特定版本的方式相同。

答案 2 :(得分:2)

根据文档,您将需要定义“发件人”。

x

答案 3 :(得分:2)

删除循环依赖项 为了进行所有更新并避免循环依赖(通常无需使用ng update @ angular / cli @ 8.1.1 @ angular / core @ 8.1.1等),请使用以下命令
ng update --force --all

答案 4 :(得分:0)

如果您要升级到较旧的版本,请按照Angular的建议先升级到下一个主要版本,而不要直接升级到最新版本(例如当前最新版本是v10,而您要从v8升级,则建议先升级到最新版本)升级到v9,然后再升级到v10),则必须提供将依赖项/软件包更新为与Angular9兼容的最新版本。

要升级,请首先在

的帮助下检查所需的依赖项

ng update-将列出您必须更新的所有依赖项(参见图片)ng update command

参考图片,有6个软件包要更新,我们将使用ng update命令将其更新为要升级到的版本(在本例中为v9):

ng update @angular/cdk@9 @angular/cli@9 @angular/core@9 @angular/material@9 @ngx-pwa/local-storage@9 rxjs --force

(您可以通过转到npm packages来定义软件包的特定版本,例如-@ angular / core @ 9.1.2,因为9.1.2是用于angular9的@ angular / core软件包的最新稳定版本)

这会将您的项目更新为angular v9。

类似地,对于v10,您需要遵循上述过程。

[注意:对于最新的角度版本(在撰写本文时为v10),您无需在更新过程中提供该版本,并且可以直接更新为:

ng update @angular/cdk @angular/cli --force

您还可以使用npm outdated来查看需要更新的过时软件包。

希望这个答案对您有所帮助。如果您发现任何问题,请发表评论,我将尝试提供解决方案。