Project Types
The Ionic CLI works with a variety of Ionic project types. The type of a project is stored in the project’s ionic.config.json
file as type
. Here is a list of project type values:
ionic-angular
: Ionic Angularionic1
: Ionic 1custom
: The CLI will not invoke anything for build or serve. See Hooks to useionic build
andionic serve
with your own build process.
Ionic Angular
Ionic Angular (ionic-angular
) uses Angular 5 and @ionic/app-scripts
for tooling.
You can start a new Ionic Angular app with the following command:
$ ionic start --type=ionic-angular
See Starter Templates for a list of starters for Ionic Angular.
Ionic Angular apps are written in TypeScript and Sass and are compiled and built with @ionic/app-scripts
, which is a configurable build system optimized for Ionic Angular.
ionic build
and ionic serve
use @ionic/app-scripts
out of the box, so it doesn’t need to be invoked directly. It also ships with good defaults, but can be configured in a variety of ways. See README.md
for configuration details.
Project Structure
project/
├─ ionic.config.json # Ionic project config file
├─ package.json
├─ src/
│ ├─ app/
│ │ ├─ app.component.ts # root component for your app
│ │ ├─ app.html # app component template
│ │ ├─ app.module.ts # NgModule for app component
│ │ ├─ app.scss # global SCSS
│ │ └─ main.ts # bootstrap file
│ ├─ assets/ # put your images, etc. here
│ ├─ pages/ # contains the page components for your app
│ ├─ theme/
│ │ └─ variables.scss # see https://ionicframework.com/docs/theming
│ └─ index.html # main html file
└─ www/ # build output directory
Ionic 1
Ionic 1 (ionic-v1
) uses AngularJS.
You can start a new Ionic 1 app with the following command:
$ ionic start --type=ionic1
See Starter Templates for a list of starters for Ionic 1.
Out of the box, Ionic 1 apps have no build process. www/index.html
includes the www/css/style.css
file and the three provided JS files withing www/js/
.
Project Structure
project/
├─ bower.json
├─ gulpfile.js
├─ ionic.config.json # Ionic project config file
├─ package.json
├─ scss/
│ └─ ionic.app.scss # enable sass to use
└─ www/
├─ css/
│ └─ style.css # vanilla CSS source file
├─ js/
│ ├─ app.js # bootstrap file, contains `.config()`
│ ├─ controllers.js # https://docs.angularjs.org/guide/controller
│ └─ services.js # https://docs.angularjs.org/guide/services
├─ templates/ # AngularJS templates
└─ index.html # main html file
Enabling Sass
You can use Sass by changing which CSS file www/index.html
uses (css/style.css
is the default, css/ionic.app.css
is generated and includes both Ionic styles and your app’s styles).
The main Sass source file is located at scss/ionic.app.scss
.
If your gulpfile.js
contains the sass
task, the CLI will run it automatically during the ionic build
and ionic serve
commands.