This is a curated CHANGELOG. We also use an automatic utility that maintains the CHANGELOG files within CLI packages. For specific commit-level changes, see #packages. For big, high-level CLI changes, see #versions.
- Added prompt to
ionic startthat asks to install the Cordova version. - Added
--bundle-idtoionic startfor setting the Cordova bundle ID inconfig.xmlwhen creating a new app. - Added more personalization features to
ionic startfor Cordova. - Fixed some poor error handling when something really goes wrong.
- Fixed issue with SSH config parsing without
Hostdirectives. - Fixed issue with serving an Ionic 1 app with livereload when the host is unexpectedly changed.
- Added support for custom git repository URLs to the
templateargument ofionic start. Seeionic start --helpfor usage. - Added
--cordovaflag forionic startto provide the Cordova integration while creating a new app. ionic cordova preparewill now run an Ionic Build beforehand to ensure the latest files are prepared. A--no-buildflag has been added to disable this.- Fixed long-standing issue with
ionic buildnot runningsasstask for Ionic 1 apps with gulp integration. It was previously only working duringionic serve. - Fixed issue with
ionic doctor checkthrowing an ENOENT error whenconfig.xmlwas missing. - Fixed issue with app not being personalized with app name during
ionic start.
ionic startis now using the starters generated from the new Ionic Starters repo, which supports approved community starters.- Cordova integration is no longer included for new apps (new apps won't have
config.xmlorresources/). The CLI will download these files and integrate the app with Cordova when requested, which can be with the newionic integrationscommands, or wheneverionic cordovacommands are first used. - Fixed spammy connection errors related to DevApp broadcasting.
- Support for the ✨ Ionic DevApp ✨
- Added
--localflag toionic serve, which is an easy way to disable external network usage when serving your app.
- Fixed issue with default livereload setting in serve.
- Fixed issue with not recognizing some Cordova platforms during
ionic cordova run. - Fixed issue with proxy settings during
ionic cordova run. - Fixed incorrect count with
ionic doctor check.
- Allow all command options to be specified as environment variables. See the docs for usage.
- Fixed issue with writing incorrect whitespace to SSH config if the config file was missing eol.
- 🎉 New
ionic doctorcommands. Runionic doctor checkin your project to detect the "health" of your Ionic project. - Now showing all Cordova command output in real-time.
- Now using contents of
platforms/directory to know which Cordova platforms are installed, notplatforms/platforms.json. - Fixed pagination issue with getting a long list of apps.
- No longer loading local CLI if "too old". See #2810 for details.
- Fixed
resources/directory being excluded in Ionic Package builds.
- Fixed incorrect behavior in
ionic cordova preparewith no installed platforms after 3.13.0 release.
- Added automatic backslash replacement on Windows for paths in
config.xml. Forward slashes are cross-platform, backslashes only work on Windows machines. - Fixed slightly buggy Cordova platforms detection. The CLI now uses
platforms/platforms.jsonto detect Cordova platforms, notconfig.xml. - Fixed rare race condition with loading/writing
config.xml. - Fixed issue with a first run of
ionic cordova prepareinside Docker container. - Fixed issue with
after_prepareCordova hook being executed twice during Cordova builds. - Fixed issue with dev logger not finding next available port for Ionic 1.
- Added support for generating iPhone Marketing Icons:
icon-1024.png. Just runionic cordova resources. - Added ability to generate/support non-RSA SSH keys for Ionic Pro.
- Added support for generating iPhone X splash screen images:
Default@2x~universal~anyany.png. Just runionic cordova resources. - The CLI will now run the local
cordovabinary if found in project. In general, it will now prefer locally installed binaries over global binaries, just like npm scripts. - Fixed Cordova run/emulate not cleaning up after itself in
config.xml(original-src->src). - Fixed watch patterns bug for serve in Ionic 1. The CLI will now always use
watchPatternsin yourionic.config.json. IfwatchPatternsdoesn't exist, the CLI fills it in with default values. - Fixed bug with the CLI where the backend was occasionally misconfigured and it was using the legacy URLs for Ionic Pro service requests.
- Hide
ionic serveerrors for DevApp multicasting.
- Hot fix for
--consolelogsnot being passed to app-scripts for Cordova builds.
- Hot fix for
--prodnot being passed to app-scripts for Cordova builds.
- New CLI installs will default to use Ionic Pro. For existing CLI
installations, use
--pro-idwithionic startorionic linkto switch your CLI to Ionic Pro. You can switch between backends withionic config set -g backend pro(Ionic Pro) andionic config set -g backend legacy(Ionic Cloud). - Added app-scripts arguments (such as
--prod) toionic upload. (:memo: Note:ionic uploadis for Ionic Cloud, aka the "legacy" backend.) - Added SSL configuration options for CLI HTTP requests. See SSH Configuration.
- Added Cordova arguments to
ionic cordova compile. - Added
ionic cordova requirementscommand. - Fixed issue with
ionic serverequiring an external network. - Fixed
--consolelogsnot working for Ionic 1. - Fixed issue with
ionic cordova platform addnot using custom icon and splash screens for the generated resources. - Fixed Cordova resources issue where if the resource generation failed, the cache files were still saved.
- Fixed Ionic builds not passing necessary context to
build:afterhooks. When an Ionic Cordova build occurs, the target platform is now passed tocordova prepare. Thanks, @rtwall! - Fixed Ionic Pro issue with incorrect interpretation of app IDs in scientific notation... again.
- Pass
--platformand--targetto app-scripts for build optimizations duringionic cordova build. - Fixed an issue with log commands conntinually printing lines while the spinner ran.
- Fixed a few minor issues with
ionic cordova resources.
- Fixed missing detection of all deprecated plugins. The CLI now warns for all
plugins, not just
@ionic/cli-plugin-cordova. - Default Ionic Cordova resources are no longer bundled with CLI installation, they are instead downloaded and copied into project directories when needed.
- Fixed recurring prompting of proxy plugin installation.
- The CLI will now use
--livereloadif--consolelogsor--serverlogsis used. There are various consolelog fixes in new release of@ionic/app-scripts: 2.1.4. - Added
--browserflag toionic docsto open the docs in a browser of your choice.
- Fixed an issue with Cordova serve improperly mocking
cordova.jsfor Ionic Angular apps.
- 🎺 All functionality provided by the
@ionic/cli-plugin-ionic-angular,@ionic/cli-plugin-ionic1,@ionic/cli-plugin-cordova, and@ionic/cli-plugin-gulpplugins has been moved into the coreionicpackage. The listed CLI plugins have been marked as deprecated. For the former two, project type is now detected and handled appropriately duringionic build,ionic serve, etc. For the latter two, integrations such as Cordova and Gulp are now detected and enabled automatically. See Integrations. The@ionic/cli-plugin-proxyplugin is unchanged. You are encouraged to uninstall the deprecated CLI plugins upon updating, as they are no longer needed and will not be loaded. - With significantly fewer plugins, the update prompts are now inherently less annoying. Additionally, if you answer "no" to an update prompt, it will ask again in a day, instead of upon the next command.
- Fixed issue with multiple serve instances running at once on a computer.
- Added helpful messages for errant invocations of
ionic build,ionic state, andionic share. - Added
--jsontoionic config setfor stricter inputs, as well as--forceto allow for overwriting arrays and objects, which normally would not be. - During
ionic cordova platform add, if an error from Cordova occurs because of the platform already having been added,cordova platform saveis now run to persist platform engine specification toconfig.xml. - Most
ionic cordovacommands now read the list of platforms fromconfig.xml, so if the platform engine isn't listed, it attempts to install, at which point if an error occurs, it runscordova platform save. - Fixed
ionic cordova preparesuch that it no longer errors when platforms are not detected, it just does nothing, as there is nothing to do.
- 🎉 Added
ionic build(finally). Now you can invoke a build for web assets and prepare them for platform targets. For Ionic/Cordova apps, this means runningcordova prepareafter the build, allowing you to use Android Studio or Xcode for native build/test/deploy. It is different fromionic cordova buildin that it does not runcordova build. The native build must happen separately, if at all. - Made
ionic cordovacommands friendlier to yourconfig.xml. The Ionic CLI was formatting XML differently from Cordova, which resulted in an annoying set of changes which each command. Now we use the same XML library as Cordova with the same settings, so massive reformatting should be minimal. - Added source image change detection to
ionic cordova resources, which saves a checksum file (.md5) next to each source image. If the source image changes, the checksums will no longer match and the resources will be regenerated for that source image. - Added
--jsonoption toionic config get,ionic package list, andionic package infofor those using these commands programmatically. - Fixed Windows bug for spawning the daemon process that was occasional with a
wonky
node_modules. Shoutout to @imgx64 for being so helpful! - Allow
--address=localhostwithionic cordovarun/emulate commands. Some things are only possible when port forwarding from computer to device and usinglocalhostas the "external" address that the device loads during livereload. ionic cordova resourcesandionic cordova platformnow respect theOrientationpreference (see Preferences).- Fixed
ionic serveignoring-boption when--labwas used.
- Added prompt for local CLI installation. It is now required that the local
CLI be installed to use local CLI plugins (which provide often necessary
functionality such as
ionic serve). You can use the globalionicbinary fromnpm i -g ionicinstallation and it will use the local CLI version if installed, similar to gulp or other CLIs. The CLI is installed locally for new projects by default. See this comment for detailed information. - Added
ionic configcommands for getting and setting project (ionic.config.json) and global CLI config (~/.ionic/config.json) files. See Config Files. - Removed
--no-timeouts: All CLI timeouts have been removed, so the option is useless. - Fixed odd behavior of
--no-interactiveand--confirm: the flags now work per-command and do not persist the mode. - Moved update checking into an opt-in background process that checks npm for new versions. The CLI now simply reads a file of latest versions instead of doing network requests.
- Fixed CLI HTTP requests not being proxied for project commands. For this to work, the CLI and the proxy plugin must be installed locally. See Using a Proxy.
- Added
ionic logoutcommand. (Hidden for now.) - Using
--no-interactivewill no longer prompt for CLI updates at all. - Fixed issue with Ionic 1 not live-reloading in devices.
- Added
--no-buildoption toionic cordova buildto skip Ionic builds. - Added check for Android SDK Tools version during
ionic info. - Added
--no-moduleoption to Ionic Angular generators. By default, if applicable, components are generated with corresponding@NgModuleclasses which allow the component to be lazy-loaded. This new flag offers the ability to disable this feature. - Added
--constantsoption to Ionic Angular generators. If provided, a file will be generated that stores string constants for identifiers for lazy-loaded pages.
- Added deploy metadata option for
ionic upload. Thanks, @harshabonthu! - Added CI detection to switch CLI into non-interactive mode.
- Added logging for showing the execution of npm script hooks.
- Added better error messaging for gulpfile errors.
- Removed non-printing characters in the output of
ionic --version. - Fixed lack of error message for unknown generator types.
- Fixed incorrect interpretation of app IDs in scientific notation. (Only if
you have a really unfortunate app_id such as
12345e10😂). See #2506.
- Warning: For Ionic 1 projects, the
sassgulp task is no longer automatically run during SCSS file changes duringionic serve. See the bullet point below! - Added CLI hooks that you can use to run code during CLI events using npm scripts. See Hooks for usage.
- 🎉 Added
@ionic/cli-plugin-gulp! This plugin will hook into appropriately named gulp tasks during CLI events. It will also automatically run thesassgulp task during SCSS file changes duringionic serve. - Fixed an issue where
0.0.0.0was the address being opened in the browser for Ionic 1 apps for server. Now the dev server still binds on0.0.0.0by default, but openslocalhostin the browser. - Fixed npm errors bubbling up during CLI update checks while offline.
- Improved
--helpdescriptions of a few Cordova commands.
- Added CLI flag for turning on/off timeouts:
--[no-]timeout - Added fuller descriptions to the
--helpoutput of individual commands. - Improved Cordova argument parsing.
- Fixed the proxy plugin so
ionic startworks behind a corporate firewall. - Improved CLI automatic update feature.
- Added CLI flags, which
change CLI behavior. There is now
--quiet,--[no-]interactive(interactive/non-interactive mode),--[no-]confirm. - Added non-interactive mode, which is useful for CI/CD servers. It disables "flair" such as spinners and unnecessary output. It also disables prompts.
- Added automatic login capability with
IONIC_EMAILandIONIC_PASSWORDenvironment variables. - Added Cordova platforms to output of
ionic info. - (Somewhat) support
documentRootandwatchPatterns(which are attributes ofionic.config.json) for Ionic 1 projects. - If git is installed, new Ionic projects are automatically setup as repositories and an initial commit is made.
- Added
--aot,--minifyjs,--minifycss,--optimizejsflags for build commands of Ionic Angular projects. - Fixed some runtime errors.
- Took out confirmation prompt for logging in again when already logged in.
As a reminder, Ionic Cloud users must migrate their apps to Ionic Pro to continue using our services. The changes below often reference Ionic Cloud, which is deprecated. See the Cloud Migration guide for details and the CLI website to see how the CLI integrates with Ionic Pro.
- If you're using Ionic Deploy, you'll need to update
ionic-plugin-deployto the latest version. See #2237 and ionic-team/ionic-plugin-deploy#122.
setup: This was only used to setup sass in Ionic 1 projects, which now is now handled instart.share: Please use the Dashboard to manage collaborators.lib,add,remove,list: For v1 projects, we recommend using bower.io: Please configure apps in the Dashboard and uselinkto associate your local project.security: Please manage security profiles in the Dashboard.push: Please manage push credentials (through security profiles) in the Dashboard.config: Please manually edit theionic.config.jsonfile.ionic configis back! Please refer toionic config get --helpandionic config set --help.service: Please migrate your app to use the Ionic Cloud Client.state: The plugins and platforms can be managed entirely by Cordova. Please remove thecordovaPlatformsandcordovaPluginskeys from yourpackage.jsonfile. If you're using Cordova 7, please review the announcement about how Cordova usesconfig.xmlandpackage.jsonto manage plugins and platforms.
- Added commands:
signup. Signup will change in the future, but as for now it simply opens up the signup page. - Cordova commands have been namespaced to allow for future platform support and to reduce clutter.
- Many command arguments, options, and flags have changed. For example, the
--v1and--v2flags inionic starthave been removed in favor of--typewith respective valuesionic1(for v1) andionic-angular(for latest Ionic Angular version). Please useionic help <commands>for new command usage. generatecommand has been overhauled to interactively generate components, pages, directives, etc. It uses the power of app-scripts to hook up generated entities to your app. In the future, generators will continue to be expanded upon.
You can drill down into commit-level changes in the CHANGELOG files of each package.
Plugins:
Older changes (CLI 2 and before) can be viewed in the 2.x branch's
CHANGELOG.md.