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 e2eorgulp watch.e2eto watch for changes. - Navigate to
http://localhost:8000/dist/e2e
Building & Running API Demos
- Run
gulp demosorgulp watch.demosto watch for changes. - Navigate to
http://localhost:8000/dist/demos
Building API Docs
gulp docsto build the nightly versiongulp docs --doc-version=2.0.0to build a specific API version
Developing against Ionic locally
From ionic directory:
gulp package buildor (gulp package watch, then open another terminal for step 2)cd distnpm link(may requiresudo)
From your app directory:
npm link ionic-frameworkionic serveorionic runorionic 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
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.