📣 Support/Questions?: Please see our Support Page for general support questions. The issues on GitHub should be reserved for bug reports and feature requests.
Run the command(s) with --verbose to produce debugging output. We may ask for
the full command output, including debug statements.
Please also copy/paste the output of the ionic info command into your issue
and be as descriptive as possible. Include any steps that might help us
reproduce your issue.
Post an issue describing your feature to open a dialogue with us. We're happy to hear from you!
Pull requests are most welcome! But, if you plan to add features or do large refactors, please open a dialogue with us first by creating an issue. Small bug fixes are welcome any time.
Looking for small issues to help with? You can browse the help wanted label.
These are issues that have been marked as great opportunities for someone's
first PR to the Ionic CLI. 😍
Our CLI is organized into a monorepo. Common tools, such as Typescript and jest,
are installed in the base directory while package dependencies are each
installed in their respective packages/**/node_modules directories.
Each packages/* folder represents a package on npm.
packages/ionic: Ionic CLI executable.packages/@ionic/cli-utils: Ionic CLI library and utilities.packages/@ionic/cli-plugin-*: Ionic CLI plugins.packages/@ionic/cli-framework: Framework for command-line programs.packages/@ionic/discover: Service discovery library used forionic servewith the Ionic DevApp.packages/@ionic/schematics-angular: Ionic Angular v4+ schematics forionic generate.packages/@ionic/v1-util: Utility CLI for Ionic v1 Apps, used byionic serve.packages/@ionic/lab: Utility CLI for Ionic Lab, used byionic serve.
- npm 5 is required.
- Node 8+ is required.
- Our codebase is written in Typescript. If you're unfamiliar with Typescript, we recommend using VS Code and finding a tutorial to familiarize yourself with basic concepts.
- Our test suite uses Jest.
- Fork the repo & clone it locally.
npm installto install the dev tools.npm run bootstrap(will install package dependencies and link packages together)- Optionally
npm run linkto makeionicand other bin files point to your dev CLI. npm run watchwill spin up Typescript watch scripts for all packages.- Typescript source files are in
packages/**/src. - Good luck! 💪 Please open an issue if you have questions or something is unclear.
Switch to dev CLI:
$ npm uninstall -g ionic
$ npm run linkSwitch back to stable CLI:
$ npm run unlink
$ npm install -g ionicTODO: Be helpful about where to look for commands, utilities, etc.
Cancel any watch scripts before proceeding.
- testing releases:
npm run publish:testing - canary releases:
npm run publish:canary - stable releases:
npm run publish