Ionic es una gran plataforma para desarrollar web apps móviles, ¡pero evoluciona tan rápido que a veces te sacan de quicio! Hace unos días publicaron una actualización de su herramienta de linea de comandos (CLI) y han cambiado algunas cosas. Esta es una breve guía para adaptarte a Ionic CLI v3.

Requerimientos

Antes de nada comentar que para usar la nueva CLI de Ionic necesitas tener unas versiones bastante modernas de node y npm:
  • Node 6+
  • Npm 3+

Proceso de instalación

La CLI se instala con el paquete principal de ionic, así que es tan simple como hacer:
npm install -g ionic    Cuando no lo tienes instalado o 
$ npm install -g ionic@latest 
Si ahora ejecutas ionic info, te debería salir por consola un resultado similar al siguiente:
global packages:

    @ionic/cli-utils : 1.1.2
    Ionic CLI        : 3.1.2

System:
    #...your node version and system details...
Como ves, mi CLI de Ionic está en una versión 3+.

Nuevo proyecto

El comando para crear un nuevo proyecto se ha modificado ligeramente para convertir a Ionic 2+ (Ionic v2 y Ionic v3) en la tipología principal de proyecto.
Ahora ya no debes indicar la versión --v2. Para crear un nuevo proyecto en la última versión de Ionic, debes hacer:
ionic start <name> [tmpl]
Si quieres iniciar un proyecto con la versión 1 de Ionic, siempre puedes indicarlo con --type ionic1.

Listar proyectos starter

Para saber que templates puedes usar al crear un nuevo proyecto (ese [tmpl] de comando anterior), lo puedes hacer igual que en versiones anteriores, con:
ionic start --list

Lanzar el servidor de desarrollo

Este comando tampoco ha cambiado. Si quieres lanzar el servidor de desarrollo, solo tienes que hacer:
ionic serve

Cambios sustanciales respecto a la CLI v2

Más rápido

El paquete que instala la CLI ha reducido su tamaño drásticamente y eso lo notarás en el tiempo de instalación. Ahora es mucho más rápido. Además, también se ha mejorado la velocidad del comando start.

Nomenclatura de comandos por plataformas

Uno de los cambios que más notarás es la nueva nomenclatura de comandos. Ahora han sido namespaced, es decir, se han delimitado por nombres. Siempre es engorroso esto de que te cambien algunos comandos…
¿Por qué lo hacen?
¿Qué sentido tiene?

Después del enfado inicial, si te fijas un poco, verás que tiene sentido lo que han hecho.
Ionic empezó orientado únicamente a plataformas móviles (y web mobile) y ahora se están abriendo a otras plataformas como por ejemplo Electron, para llegar a escritorio. Y claro, ahí la CLI antigua no estaba preparada.
Los comandos principales que usabas en desarrollo ahora pasan a tener el nombre de la plataforma delante, es decir, para móvil tienes los siguientes cambios:
  • ionic build ======> ionic cordova build
  • ionic emulate ====> ionic cordova emulate
  • ionic run ======== > ionic cordova run
  • ionic platform ===> ionic cordova platform
  • ionic plugins ====> ionic cordova plugins

Comandos guiados

Ahora muchos de los comandos te facilitan un guiado en caso de que te falte alguna dependencia o lo hayas introducido incompleto.
Por ejemplo, si creas un proyecto nuevo y lo intentas compilar para iOS o Android, la CLI te indica que te falta el plugin @ionic/cli-plugin-cordova. Además, se ofrece a instalarlo por ti.
ionic CLI v3 guided command
Lo mismo pasa con el comando start, así como con el comando generate que te permite crear nuevos archivos. Si no especificas el tipo de archivo que quieres crear, la CLI te lo pregunta.
enter image description here

Comandos eliminados

Los siguientes comandos (la mayoría de servicios en el cloud de Ionic), han sido eliminados: setupsharelibiosecuritypushconfigserviceaddremovelisthooksstate.
En el caso de este último (state), se ha eliminado por que ahora cordova ya implementa un mecanismo interno para guardar y restaurar los plugins que usas.

Nuevos comandos

La CLI v3 de Ionic ha añadido el comando signup, que está también relacionado con sus servicios en el cloud.

Commands

Here is a full list of Ionic commands. You can also see the list on the command line with ionic --help.
CommandDescription
buildBuild web assets and prepare your app for any platform targets
docsOpen the Ionic documentation website
generateGenerate pipes, components, pages, directives, providers, and tabs (ionic-angular >= 3.0.0)
infoPrint system/environment info
linkConnect your local app to Ionic
loginLogin with your Ionic ID
serveStart a local dev server for app dev/testing
signupCreate an Ionic account
startCreate a new project
telemetryOpt in and out of telemetry
uploadUpload a new snapshot of your app
config getPrint config values
config setSet config values
cordova buildBuild (prepare + compile) an Ionic project for a given platform
cordova compileCompile native platform code
cordova emulateEmulate an Ionic project on a simulator or emulator
cordova platformManage Cordova platform targets
cordova pluginManage Cordova plugins
cordova prepareCopies assets to Cordova platforms, preparing them for native builds
cordova resourcesAutomatically create icon and splash screen resources
cordova runRun an Ionic project on a connected device
package buildStart a package build
package downloadDownload your packaged app
package infoGet info about a build
package listList your cloud builds