The Ionic Framework command line utility makes it easy to start, build, run, and emulate Ionic apps. In the future, it will also have support for our mobile development services and tools that make Ionic even more powerful.
ionic --help command for more detailed task information.
$ npm install -g ionic
Note: For a global install of
-g ionic, OSX/Linux users may need to prefix the command with
$ ionic start myapp [template]
Starter templates can either come from a named template, a Github repo, a Codepen, or a local directory. A starter template is what becomes the
www directory within the Cordova project.
Named template starters:
Github Repo starters:
Codepen URL starters:
Local directory starters:
--appname, -a ....... Human readable name for the app (Use quotes around the name) --id, -i ............ Package name set in the <widget id> config ex: com.mycompany.myapp --no-cordova, -w .... Do not create an app targeted for Cordova
ionic serve to start a local development server for app dev and testing. This is useful for both desktop browser testing, and to test within a device browser which is connected to the same network. Additionally, this command starts LiveReload which is used to monitor changes in the file system. As soon as you save a file the browser is refreshed automatically. View Using Sass if you would also like to have
ionic serve watch the project's Sass files.
$ ionic serve [options]
[--consolelogs|-c] ...... Print app console logs to Ionic CLI [--serverlogs|-s] ....... Print dev server logs to Ionic CLI [--port|-p] ............. Dev server HTTP port (8100 default) [--livereload-port|-i] .. Live Reload port (35729 default) [--nobrowser|-b] ........ Disable launching a browser [--nolivereload|-r] ..... Do not start live reload
$ ionic platform ios android
$ ionic build ios
emulate command will deploy the app to the specified platform devices/emulators. You can also run live reload on the specified platform device by adding the
--livereload option. The live reload functionality is similar to
ionic serve, but instead of developing and debugging an app using a standard browser, the compiled hybrid app itself is watching for any changes to its files and reloading the app when needed. This reduces the requirement to constantly rebuild the app for small changes. However, any changes to plugins will still require a full rebuild. For live reload to work, the dev machine and device must be on the same local network, and the device must support web sockets.
With live reload enabled, an app's console logs can also be printed to the terminal/command prompt by including the
-c option. Additionally, the development server's request logs can be printed out using
Command-line flags/options for
[--livereload|-l] ....... Live Reload app dev files from the device (beta) [--consolelogs|-c] ...... Print app console logs to Ionic CLI (live reload req.) [--serverlogs|-s] ....... Print dev server logs to Ionic CLI (live reload req.) [--port|-p] ............. Dev server HTTP port (8100 default, live reload req.) [--livereload-port|-i] .. Live Reload port (35729 default, live reload req.) [--debug|--release]
While the server is running for live reload, you can use the following commands within the CLI:
restart or r to restart the client app from the root goto or g and a url to have the app navigate to the given url consolelogs or c to enable/disable console log output serverlogs or s to enable/disable server log output quit or q to shutdown the server and exit
Deploys the Ionic app on specified platform emulator. This is simply an alias for
$ ionic emulate ios [options]
Deploys the Ionic app on specified platform devices. If a device is not found it'll then deploy to an emulator/simulator.
$ ionic run ios [options]
Update Ionic library files, which are found in the
www/lib/ionic directory. If bower is being used
by the project, this command will automatically run
bower update ionic, otherwise this command updates
the local static files from Ionic's CDN.
$ ionic lib update
Using Ionic's service, you can compile and package your project into an app-store ready app without requiring native SDKs on your machine.
$ ionic package debug android
The third argument can be either
release, and the last argument can be either
Ionic uses Cordova underneath, so you can also substitute Cordova commands to prepare/build/emulate/run, or to add additional plugins.
Note: we occasionally send anonymous usage statistics to the Ionic team to make the tool better.
By default, starter projects are hooked up to Ionic's precompiled CSS file, which is found in the project's
www/lib/ionic/css directory, and is linked to the app in the head of the root
index.html file. However, Ionic projects can also be customized using Sass, which gives developers and designers "superpowers" in terms of creating and maintaining CSS. Below are two ways to setup Sass for your Ionic project (the
ionic setup sass command simply does the manual steps for you). Once Sass has been setup for your Ionic project, then the
ionic serve command will also watch for Sass changes.
ionic setup sass
npm installfrom the working directory of an Ionic project. This will install gulp.js and a few handy tasks, such as gulp-sass and gulp-minify-css.
<link href="lib/ionic/css/ionic.css" rel="stylesheet">from the
<head>of the root
<link href="css/style.css" rel="stylesheet">from the
<head>of the root
<link href="css/ionic.app.css" rel="stylesheet">to the
<head>of the root
"gulpStartupTasks": ["sass", "watch"](this can also be customized to whatever gulp tasks you'd like).