I have a legacy Ionic 3 app that I’m planning to update to the latest version of Ionic (which I expect to be a labor intensive project, going by the Ionic 3 -> 4 migration instructions). The recent release of Ionic 5 adds some extra complexity. Should I attempt to update the project directly from Ionic 3 to Ionic 5, or stick with upgrading to Ionic 4 and investigate upgrading to Ionic 5 afterwards separately?
While I think this is more of a best practices question, some data about my system follows:
Ionic CLI : 5.4.14
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.4
NodeJS : v12.8.1 global, v8.16.0 in project directory (using avn-nvm for switching)
npm : 6.4.1
OS : Ubuntu LTS 18.04.3
Disclaimer: I don’t speak for Ionic in any capacity, so don’t take this as official advice.
I haven’t had or observed much luck upgrading Ionic apps in place for anything but very minor incremental framework version changes.
A much more robust - albeit admittedly much more disruptive - approach is to spawn a completely new project with
ionic start, make sure that the toolchain is working well enough to generate a “hello world is your oyster”, and then parachute code in from the old project (in chunks, if necessary, always making sure things keep running, because if you change too much at once it can be hard to identify what broke the build).
If you do decide to go with that approach, I would see no benefit to using anything other than the latest release versions (i.e. no trampolining through older stuff).