Dependency Coupling: Ionic ,Angular, Cordova, CLI

Is there a dependency coupling between the following, and if so, what are they?:

  • Version of Angular
  • Version of Ionic
  • Version of ionic-native
  • Version of cordova plugins
  • Version of ionic-cli
  • Version of cordova itself

We are an enterprise app where we reuse other services and modules built in a particular version of Angular (non-ionic, normal SPA), so we cannot use the latest version of ionic.

I used this tool to get a glimpse of different dependency versions:, but noticed that as i changed the version of ionic, other dependencies would downgrade.

For example, can i use Ionic CLI 4.5 (global), with a project that is running Ionic 3.20.x, running Angular 4.x.x? Or can I run @ionic-native dependencies at different versions from each other (@ionic-native/camera version different from @ionic-native/geolocation)? Are @ionic-native dependencies tied to certain versions of their cordova plugin equivalents?

How tightly coupled are versions?


Within limits. They all have to be on the same major version. You probably don’t want to do this, though, because:

Less so than they are tied to versions of the entire ionic-native ecosystem.

The most tightly coupled pair is the top two on your list: angular version and ionic version. A lot of seemingly mysterious problems seen here are the result of people upgrading Angular versions past what their Ionic version wants.

Second on the list would probably be “cordova itself” (also sort of platform-specific) and “cordova plugins”, but that’s true of any cordova-based system, and not necessarily ionic-related.

Finally, ionic version and ionic-native version must be major-matched: IOW, if you are using Ionic 3, you need ionic-native 4, and for Ionic 4 one needs ionic-native 5.

1 Like


What about coupling with:

  • Typescript Version
  • RxJS Version

Or is that more important with regard to the Angular version, not Ionic.

I would completely agree with this.

1 Like