If you develop applications using Ionic Framework you will - sooner or later - come into contact with one of its Github repositories. When looking for how to do something, it is sometimes easier to look into and search the code directly on Github where it is versioned and easily searchable, than to limit yourself to what you have available locally. Fortunately, all components of Ionic are developed in the open. At the latest when something doesn’t work as expected and it really isn’t user error, you end up at the issue’s of the project or even submitting a Pull Request fixing the bug you encountered.
But Ionic (or better ionic-team, the Github organization that hosts and collects all the repositories) has a loooot of Github repositories. More than 150 in fact. What is which and needed why?
This post gives you an overview of all these repositories. For that, I went through all of them, grouped them and added some description and explanation:
Let’s start with the most important ones:
ionic-cli - The Ionic Command Line Interface ionic
(CLI) is what everybody that works with Ionic installs as one of the first steps with npm install -g ionic
. It is what enables you to ionic start
projects, ionic serve
them in the local browser to test them and ionic cordova build
them into Cordova wrapped native apps for mobile - and so much more.
ionic-site - You most probably visited ionicframework.com when you learned about Ionic Framework. Here is all the information you need, including the complete documentation. The site is built from this repository, which in turn gets its content from many of the child repositories.
ionic - This is the main Ionic Framework repository that is published as ionic-angular
to npm and by this name included in the package.json
of newly created Ionic projects. It includes… TODO
ionic-app-scripts - Ionic App Scripts are “App Build Scripts for Ionic Projects”. They are used by the Ionic CLI to do everything that is required to go from a simple /src
where you type your code in Typescript files to the processed /www
where you only have a few optimized .js
files (meaning these tasks: build, clean, cleancss, copy, lint, minify, sass, watch and more).
ionic2-app-base - Base project for Ionic projects. It includes the stuff that when you start a new Ionic apps is identical in all of them, no matter what starter template is used. This includes the definition which version of ionic-angular
is actually used in the project, but also all the other dependencies in package.json
. It adds the default config.xml
for Cordova projects, the src/index.html
that loads all the JS, and the src/app/main.ts
that is the “entry” point of all the code that gets executed. In /resources
you also get the default app icons and splash screens.
ionic-native - Ionic Native bridges all the Cordova plugins out there into the Ionic and Angular world. It adds a wrapper around the plugin codes that offers Promises and Observables you can use in your code. Additionally it adds Runtime Diagnostics and Browser Usage support, so you can write mocks for the plugins that work during browser testing.
ionic-storage - Ionic Storage is a simple key value store made for Ionic, solving many of the storage requirements in common projects. In the background it uses IndexedDB, WebSQL, and LocalStorage and also can use SQLite on native environments where the SQLite Cordova plugin is installed. It uses the excellent localForage in the background.
ionic-module-template - This template could be the base if you decide to build and distribute a reusable module for Ionic.
These templates are downloaded and applied on top of the ionic2-app-base by the CLI when you ionic start
a project. They contain mainly the code for the pages (/src/app
and /src/pages
), sometimes additional things (like assets, a package.json
with additional dependencies, providers etc.).
<ion-camera>
Migrate to Ionic from Ionic v1
Ionic provides a 33 page Migration Guide to Ionic 2 from Ionic v1 (PDF) for people with v1 projects.
ionic start
a v1 project.Contrib / Ion
ionic upload
ed to apps.ionic.io. That source code is not open source, but here you can create issues for bugs or feature requests.Ionic also offers and creates some Cordova plugins for use in all Cordova projects, not only Ionic.
WKWebView
component instead of the default UIWebView
component”Ionic Creator is a WYSIWYG editor for Ionic v1 that you can use to click your interface and then back it with code.
There are lots of repositores that were once used, but now are explicitly marked as deprecated or implicitly are deprecated because the service or tool they describe is not in use any more.
Old Ionic Services
@ionic/cloud
ionic-platform-web-client
CLI v2
With the release of Ionic CLI v3 these two repositories are not needed any more as a rewrite of them is now part of the CLI itself:
cordova-lib
cordova-android