How can I keep using Ionic 2 instead of 3? I need Angular 2


#1

I support progress, but I don’t like messing around with incompatibilities and RC versions of software.
I want things to just work so I can just work.
There was a nice 3 or 4 month period where everything 2.0 just worked at the beginning of this year.
I’d waited patiently for months for things to get to that point and I was happy.

Unfortunately, even though (I believe) Angular 4 is an official release, not everything has caught up to it, including Google’s own Angularfire.
I was also having issues with lodash.
Maybe because of a newer version of typescript? Not sure.

So is there a way to select whether I want Ionic 2 or 3 on a new project?


#2

No.

That being said, you are certainly welcome to pin versions of all your dependencies in package.json as you wish. I would strongly urge you to work out your difficulties with Angular 4, though, as it provides significant improvement in app binary size and loading performance.


#3

Well, depending on your viewpoint you could also phrase this as “Yes”:
Just take the first commit of the project you already have with the version you also want to use on your new project, and start a new project with that instead of running ionic start right now. Then you have the correct files and can pin the versions in package.json.

Of course, all the gotchas @rapropos mentioned apply: No bug fixes, no performance improvements etc.


#4

I suppose so, but my viewpoint is that “Ionic 2” and “Ionic 3” aren’t really separate entities, especially as it pertains to maintenance, so the concept of choosing one or the other doesn’t really mean anything.


#5

I would have no issues “working out my difficulties” except that as a freelancer I depend on having working tools available to create new projects so I can keep making money. If I have to stop for a week to figure out low level issues that much smarter people than me haven’t fixed, that’s bad for my business. Not to mention I now have to produce kludgey code to work around incompatibilities, whereas a month ago I could just fire up an app with no problem.

Performance and size improvements are good and as mentioned, I support progress. However, if they come at the cost of unstable, non-production ready code, that’s not something that excites me.

I did try swapping out versions in my package.json and it wound up causing more problems than it solved.

I guess spending a week fixing problems is better than waiting a month for 6 figure salary workers to do it for me.


#6

Thanks for this. It gave me the idea to just duplicate a known working app, gut it, and rebuild it.


#7

Where is that? Concrete examples please.[quote=“leetheguy, post:5, topic:88132”]
I guess spending a week fixing problems is better than waiting a month for 6 figure salary workers to do it for me.
[/quote]

I don’t understand, what do you mean by that?


#8

Nothing I said is a reflection on Ionic. They’re doing a fine job. And I know it’s their thing to keep up with the latest Angular. I’m mostly upset with the Firebase team for not keeping Angularfire up to date with Angular.

The code I create to hack the libraries I use will be unstable and brittle because I’m better at creating apps than modifying Typscript Types and monkey patching big name libraries like Angularfire. Even if my code isn’t that bad, I’m likely to do something that will change when the official release comes out and will require me to rewrite dependent code. For example, the Lodash types no longer worked with 4.0 so I’d have to edit that. And the Angularfire Authentication hadn’t been implemented yet, so I’d need to copy it from the old code and wire it in however they do. It sounds like a great exercise, but one I’d rather not have to take on.

The 6 figure salary workers are the guys at Google who haven’t done the best job of keeping their tools working together. I know they’ll fix it eventually, but it’s painful to have to deal with it now.

I only mention all of this here because Ionic is the tool that forced me to have to deal with all the inconsistencies you get from the bleeding edge.


#9

Understandable, the guys at angularfire are working to keep it consistent with the new version of angular.

Considering the tradeoffs I think what @Sujan12 said would be a good way to use Ionic 2. Find a version that works for you and basically stick to it untill the new stuff gets stable, and then make the switch.

Maybe just make a base app and just fork it when you need to work on something new.