A New Package for the CLI

Mike Hartington - Feb 18 '20 - - Dev Community

TL;DR, we're re-releasing the CLI package under a new name, @ionic/cli!
To update, first you will need to uninstall the old CLI package.

$ npm uninstall -g ionic
$ npm install -g @ionic/cli

You will still interact with the CLI via ionic command, just how the CLI is installed has changed. And now, on with the blog post!

Everything has a beginning

Many years ago, when Ionic was still in it's pre 1.0, we saw a great opportunity to help devs build amazing apps without having to guess how that would be done. While the V1 days of Ionic included things like bower, scripts tags, and gulp, it was our first attempt to make a tool that did everything for you. After building out all the initial functionality, we had one last task...what do we call this tool?

We called it...Ionic!

Our initial logic was that we would have one tool and one framework that covered everything. Want to build apps with Ionic? Just install Ionic. This worked great, and for a long time we were set on just keeping things as they were. That is until we started noticing a common point of confusion with our users.

What version of Ionic are you using?

When debugging a user issue or working with community members, one of the first things we ask people is "What version of Ionic are you using?" This has led to some confusion in the community as people would assume that ionic -v would give them the version of both the framework and the CLI. This however is not the case. One or two instances would be enough to ignore this, but given how common this is, we thought it was finally time to solve this issue.

As the number of packages under the Ionic organization has grown, we would ship them under the scoped package name. Our release of Ionic for Angular? @ionic/angular. React? @ionic/react. This is a pretty clear message that when you install one of these packages, you know exactly what you are getting. There is no confusion in this package's purpose or what context this package should be used in.

Moving towards a scoped package

To help with this confusion, we're rereleasing the CLI package under a new name, @ionic/cli. This unifies how we ship tools across Ionic and make sure that people are aware what tool they are installing when setting up their environment. I mentioned this last week in an Ionic newsletter and so far the feedback from the community has been incredibly supportive.

In the past this has been a suggestion that many community members have made and as time has gone on, it seems to be the move many other CLI tools have done. Angular in particular rebranded the angular-cli package in favor of @angular/cli and the Vue CLI has done the same thing (vue-cli to @vue/cli). With this in mind, we finally decided it was time.

To update to the new CLI, you must first uninstall the old CLI package:

$ npm uninstall -g ionic

# Then install the new CLI package
$ npm install -g @ionic/cli

This new package name coincides with the release of the CLI’s 6.0. This includes some new features which can all be reviewed in the Changelog.

The old CLI package will not be updated to the newer 6.0 releases and has an official deprecated warning now. While this should work for some time, we encourage everyone to update to the new CLI package to receive all the latest updates.

Well that’s all for now folks! We are glad the feedback so far has been super supportive of this change and can’t wait for you all to upgrade….Seriously, we can’t wait. Upgrade your CLI 😄.
Cheers!

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .