Ionic版本更新方法总结
Ionic采用了SemVer的版本控制规范,每6个月进行一次大版本发布,每月进行一次小版本发布,并进行轻微修复以解决缺陷等的补丁发布。为了适应Angular 9和Ivy,Ionic 5版本已经准备就绪,因此除了延迟一次大版本发布之外,其他更新都经常进行。
在项目中,我们应该跟随依赖包进行版本升级。版本升级带来的好处不仅包括修复漏洞,还有通过优化包大小和执行速度加快而带来的好处。此外,Angular日本用户组的社区副组织者奥野先生也对此背景做出了非常恰当的提及,我在这里引用他的话。
Chrome每6周,Firefox每4周就会发布新版本。(中略)我认为,习惯于这种网页速度才是那些从事网络工作的人的命运。
https://qiita.com/okunokentaro/items/503ab7a4c7601b564de0#%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB
由于在Ionic中运行的浏览器也以这样的速度不断发展,所以跟随其步伐非常重要。
怎么升级版本?
发现版本升级
首先需要注意到的是版本更新正在进行中。原则上,应该检查Ionic资源库,这是主要资源的仓库。
您可以快速浏览哪些问题已经得到解决,以及新增了哪些功能。如果是英文,您可以放心使用谷歌翻译大致了解内容,所以请随意使用翻译工具。
然而,每天或每周都要检查这里对我来说太麻烦了,因此在Ionic Japan User Group的slack(https://ionic-jp.herokuapp.com)的#release频道中,设置了当有release信息更新时,会通过RSS从GitHub发送通知。如果您使用RSS阅读器,我认为您可以自己接收通知。
确认如何进行版本升级
如果需要升级涉及到依赖包的版本,先前的存储库中会写明“请按照以下步骤进行版本升级”。尽管数量不多,例如在升级到Ionic 4.7.0版本时,存储库中提供了升级方法的指导。
另外,如果更新过程复杂,你也可以在Ionic日本用户群的slack上的#release频道中,获取关于版本更新的日语指南。
升级版本
如果是使用Ionic/Angular的情况下
使用Ionic/Angular时,最重要的是ng update命令。Angular定期进行版本更新,包括angular.json等除了包以外的更新,这些更新可以通过ng update命令自动化。该命令会根据”前一个版本→最新版本”的差异来进行除了包以外的升级。所以,如果通过npm i @angular/core@latest等方式进行了更新,就无法享受自动化带来的好处,而需要进行手动操作。
如果没有特定的版本升级指南,则首先应该执行的是
% ng update @ionic/angular
如果可以的话,它将包括所有相关的依赖包并更新到最新版本。但不幸的是,这种方法经常会导致失败。例如,如果不更新@angular/core,就会出现错误。
% ng update @ionic/angular @angular/core @angular/cli
可能性之一:通常情况下,可能需要指定其中三个进行升级。顺便提一下,作者通常会这样做。
% npm i @ionic/angular@latest
% ng update @angular/core @angular/cli
由于现在还没有实现其他自动迁移功能,@ionic/angular提供了依赖包的ng update,因此经常会进行此操作。
将Ionic/Angular升级至4.7.0以下版本。
这次版本升级对于Ionic来说非常重要,我们必须通过固定版本来进行升级,我会为您提供升级指令。如果您使用的是4.7.0以下版本,请先升级到4.7.1。
% npm i @ionic/angular@4.7.1 @ionic/angular-toolkit@2.0.0 -D
% npm i @angular-devkit/architect@0.801.2 @angular-devkit/build-angular@0.801.2 @angular-devkit/core@8.1.3 @angular-devkit/schematics@8.1.3 @angular/cli@8.1.3 @angular/compiler@8.1.3 @angular/compiler-cli@8.1.3
(場合によってはここでnode_moduleを削除しないといけないかも)
% npx ng update @angular/core@8.1.3 @angular/cli@8.1.3
如果使用别的软件包的话
在这种情况下,通常的方式是通过 %npm i packageName@latest 进行更新。只是,它不像Angular一样提供自动更新功能,所以如果您正在使用Ionic/React,需要同时检查React本身的版本更新进展。
总结
版本升级就像暑假作业一样,升级一个版本只需要大约1分钟的工作,但是如果一直积压下来,就需要相当长时间的工作。由于Ionic5即将发布,所以请务必抓住机会,在阅读本文的今天尝试进行版本升级!
那么,再见。