Development
Getting Started
All of these commands require you to run npm install
first. Add the --typecheck
flag to generate type definitions (.d.ts
) and do type checking, but keep in mind builds and rebuilds when watching will be significantly slower (~1min and ~1s respectively, vs ~20s and ~200ms without typechecking).
Building Ionic Source
Run gulp build
or gulp watch
to watch for changes.
Building & Running e2e Tests
- Run
gulp e2e
orgulp watch.e2e
to watch for changes. - Navigate to
http://localhost:8000/dist/e2e
Building & Running API Demos
- Run
gulp demos
orgulp watch.demos
to watch for changes. - Navigate to
http://localhost:8000/dist/demos
Building API Docs
gulp docs
to build the nightly versiongulp docs --doc-version=2.0.0
to build a specific API version
Developing against Ionic locally
From ionic
directory:
gulp package build
(orwatch
, then open another terminal for step 2)cd dist
npm link
(may requiresudo
)
From your app directory:
npm link ionic-framework
ionic serve
orionic run
orionic emulate
To remove the linked version of ionic-framework
do npm rm ionic-framework
, and then reinstall using npm install ionic-framework
.
Running Snapshot
- Install Protractor:
npm install -g protractor@2.5.1
- Run
webdriver-manager update
- Export
IONIC_SNAPSHOT_KEY
(get from someone) - Run
gulp snapshot
For more information on protractor, see https://angular.github.io/protractor/#/.
Running Tests
gulp karma
Releasing
Releasing Ionic Source
- Run
gulp prerelease
- Pulls latest
- updates package.json minor version
- updates changelog
- builds npm package files into dist
- Verify that changelog changes and package.json update are correct (
git status
&&git diff
) - Run snapshot & update if necessary
- Commit and push
- Run
gulp release
- publishes to npm
- Creates a new tag and release on Github
- Sit back and have a beer 🍺 (or wine 🍷)
Releasing Component Demos
(Copied from ionic-preview-app, check there for updates)
- Set production mode to true
- Rebuild app
- Copy the contents of this entire repo to
ionic-site/dist/preview-app/
(cp -R * ../path/to/ionic-site/dist/preview-app/
)
Releasing API Demos
Ionic API demos are automatically compiled and deployed to the ionic staging site on every commit. No action is necessary.
If you'd like to manually update the demos, clone the ionic-site
repo as a sibling of ionic
. From ionic
run gulp docs, and it'll compile and copy the demos to the ionic-site
repo, ready for testing or committing.