If you’re reading this article to learn how to update your Ionic 2 application project, let me tell you one thing, your pain is my pain.
Every new Ionic Framework version brings us a treasure trove of new features, bug fixes, and enhancements. Which is great, but what can we do to upgrade our existing project(s)?
Unfortunately, Ionic 2 can make this process a little bit cumbersome so let me show you what to do.
Update Ionic-CLI and Cordova
The first thing you probably want to do is make sure Ionic-CLI and Cordova are up to date:
npm install -g cordova ionic@beta
This line will also install both frameworks from scratch if you don’t have previous installations.
For the next step, you need to be inside a project folder.
Update Ionic 2 Project
I bet a lot of you have previous experience with Ionic v1. Back then, Ionic v1 was updated using this line:
ionic lib update
This solution no longer works. Ionic v1 used bower under the hood; Ionic v2 is moving away from this approach.
New solution requires us to know current Ionic v2 version. To find this information, open an official Ionic Framework npm page, look at the right side, you’ll find it there:
This value should be the current Ionic 2 Framework version.
Let’s get back to our local project. Find a local version of package.json, search for a dependencies section, and update ionic-framework parameter value.
If Ionic 2 is still in alpha status, prior to doing next step, you may want to remove the ionic-framework folder from node_modules folder.
Update your project using this line:
Now comes the funny part.
While manually updating Ionic 2 settings, you can’t know if a newly updated version also requires additional/new dependencies. If any dependency changed since the last installation, you’d receive an error looking like this:
npm ERR! Windows_NT 10.0.10586 npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" npm ERR! node v4.2.3 npm ERR! npm v2.14.7 npm ERR! code EPEERINVALID npm ERR! peerinvalid The package firstname.lastname@example.org does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer email@example.com wants firstname.lastname@example.org npm ERR! Please include the following file with any support request: npm ERR! E:\Programiranje\Ionic2\Ionic2FirstApp\npm-debug.log
As you can see, my current Ionic 2 version requires newer Angular2 version; update package.json accordingly.
Do this step over and over until you find a stable combination.
Finally, let’s check if everything is working as it should:
I know this is not a perfect solution, but, for now, it works. I’ll update this article once I find a better or easier solution.