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/pages), sometimes additional things (like assets, a
package.json with additional dependencies, providers etc.).
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 starta v1 project.
Contrib / Ion
ionic uploaded 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.
WKWebViewcomponent instead of the default
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
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: