How to create an Ionic v6 Project based on Angular - ionic-framework

In versions of the Ionic framework, after Ionic v2, an Ionic v3 Angular project can be created by setting --type=ionic-angular e.g.
ionic start MyApp blank --type=ionic-angular
So even if Ionic v5 is installed the above command would create an Ionic v3 Angular project.
My question is how can I always create an Ionic v6 Angular project, even if I install the latest version of Ionic in 6 months time? E.g. When Ionic v7 is released will there be a way to create an Ionic v6 Angular project?

It will not change, it will stay the same as you posted.

You can force it by installing #ionic/angular version to current version in your package.json file.
However, Ionic is a very unstable framework even after 10 years. Every time there is a new release, old plugins completely get messed up. And you need to update plugins to stay in sync with iOS/Android updates. I have wasted so many hours every time there is a new Ionic or Capacitor release. The process is never straightforward.

Related

Ionic versions - understanding difference between ionic cli version and ionic core version

I am starting to work on an existing Ionic 4 application. In that project #ionic/core version is 4.8.1. To start, I installed ionic CLI and noticed its version to be 5.4.15. I was not able to find easily if I can install an older ionic CLI version.
However, I feel CLI version and the application version need not be the same always. So, now, I would like to know how these things are related. Also, for me to run my existing project, can I use the same version of ionic CLI.
I wanted to mention that all ionic-native/**** references are 5.10.0 which I think should fine as #ionic/core and #ionic/angular is the version which says what my ionic project version is.

Why is Ionic 5 using Angular 8.2.14

I updated to the latest ionic cli (version 6.1.0). And when I create a new ionic project, in the package.json file it uses angular 8.2.14.
Why is that so? Isn't ionic 5 using angular 9?
There are not major changes in Angular 9.
A9 is similar to A8 (as per functionality and logic).
Angular 9 is in latest version and it's now stable.
I think Ionic decided to use Angular 8 because it's LTS version.
Other reaseon can be, Ionic 5 was launched some days before Angular released its version 9.
Here you can read some notes:
https://angular.io/guide/releases#deprecation-practices
You can update easily your ionic project angular version to 9 (it's 100% compattible with ionic) if you want to use the latest version.
ng update #angular/core #angular/cli.
The starter apps currently ship with Angular 8 and will be updated to ship with Angular 9 by default soon. (source: Ionic Forum)

which version is/are suitable for a production app for ionic CLI and Ionic framework?

As ionic 4 is released, I am wondering if I should start my new project in ionic 4 and ionic 4.9 (CLI) or any stable version you guys would suggest to prevent any issues ?
I think you can start your project with Ionic 4.0. With this final release, your app will perform better than version 3. Your doubt is good because there are still some bugs this is release but Ionic version 4.0 will allow you to update your application easily with the newer version. Ionic Framework team is working really hard for bug-free Ionic 4.0.

Create an ionic 2 project with ionic 3 cli

How do you create ionic projects with different versions of ionic?
I am able to create an Ionic 1 project by using --type=ionic1 flag in ionic-cli as mentioned here.
But how do we create an Ionic 2 project with ionic-cli 3?
--type=ionic2 doesn't work as mentioned in this thread.
Any kind of help will be appreciated.
Thanks!
You cannot create ionic2 using ionic3 cli
Reason
ionic1 was on angular1x
but angular 2 was not updated version of angular1x but new rewritten for angular and hence ionic updated them self to ionic2 which used angular2
now the angular4 was released it was not rewritten of angular2, it was updated version of angular2.Hence ionic3 was updated and now used angular4.
it means even if you have ionic2 project but you have ionic3 cli installed , yet you can run and compile without any problem.
conclusion. ionic1 is different and ionic2 == ionic3 + some new features such as lazy loading.
Thr is no such need to create ionic2 project
but if you familiar with angular1x and not angular2 you can create ionic1 project with ionic3 cli

Can i run the ionic v1 project when i have ionic CLI 3.0.0

Now i have the latest version of ionic 3.0.0. My ionic version: 3.0.0.
And my ionic info:
global packages:
#ionic/cli-utils : 1.0.0
Ionic CLI : 3.0.0
System:
Node : v7.3.0
OS : macOS Sierra
Xcode : Xcode 8.3.2 Build version 8E2002
ios-deploy : 1.9.0
ios-sim : 5.0.13
Now i have two question in this. I searched , but not able to get the clear. If any one can answer. It will be helpful for many new bie like me.
So,
1.Now i have ionic 3.0.0. Then if i want to open the project in ionic v2. i will give ` ionic start newapp blank --v2 or (--ts_)'. And i will use some updated plugin having in ionic 3.0.0. Does it will work out. or i need to create a seperate project for ionic version 3 ??
Now i have old ionic 1 project that i am still working on. So once i update my ionic to3.0.0. Now what i done is :
ionic start newapp blank --v1 then i copied my old project www folder to this newapp and i replaced it.
My question is. Still can i use angular js1 to code for this project also. And while make ionic release means when i want to put it in my app store. Does any problem will occur. Because i have create this project as --v1.
If yes when i create a new project ionic start newapp blank --v1 its asking me Link this app to your Ionic Dashboard to use tools like Ionic View? y/N : what should i need to do
Please clarify me..thanks in advance
Using the ionic-cli version 3.0 you should be able to work on all versions of ionic projects.
The new cli will create an ionic v3 app by default. If you want to create an ionic v1 app, you need to add --v1. But if you are starting with a new app, I strongly recommend going for v2+.
Depending on the version your ionic app has, you need to add some additional plugins:
#ionic/cli-plugin-ionic-angular – Ionic Angular project plugin that provides useful build tools and generators. (ionic v2+)
#ionic/cli-plugin-ionic1 – Ionic 1 project plugin that has functionality ported from the old CLI.
#ionic/cli-plugin-cordova – Essential for an Ionic/Cordova app.
#ionic/cli-plugin-proxy – For proxying CLI requests through a firewall.
I can't tell you if you need to link your app to the dashboard. If you are using the Ionic services (Push, View, etc), then it makes sense.
That being said, I have experienced quite a few "bugs" or inconsistent behaviour with the new cli, so you might need to downgrade if something doesn't work.
I had this same worry when I updated my Ionic to v3 (CLI 3.1.2). They seem to really be pushing to use their cloud services (obviously, they want to start making some money on it).
When I tried the old v1 command:
ionic build ios
I received:
The build command has been renamed. To find out more, run:
ionic cordova build --help
So, then I tried
ionic covdova build ios
That failed with this:
ionic package build ios
[ERROR] Your project file (./ionic.config.json) does not contain 'app_id'. Run ionic link.
So, after looking around a bit, I used this command and it worked:
ionic cordova build ios --v1
It asked me to install a couple of things, then chugged out a new successful build. All good.
Please use following command as I had trouble with "--v1"
ionic start newapp blank --type=ionic1
As mentioned by #Samuel.
Add Ionic 1 CLI to the devDependency list. Open package.json file in the project directory and add the following line to devDependencies.
"#ionic/cli-framework": "^1.0.0-rc.2"
Example package.json:
Running ionic repair removed package.json and node_modules then, if prompted, run npm audit fix, and then you will be asked to Install #angular/cli?