Ya hace unos días que se publicó Ionic 2 RC0. Como algunos cambios estructurales rompen la compatibilidad con versiones anteriores, quiero compartir contigo una guía paso a paso para migrar tus aplicaciones de Ionic 2 beta a Ionic 2 RC0.

Actualizate a la versión 2.1.0 del CLI de ionic

Lo primero que tienes que hacer es actualizar el CLI de ionic. Sigue estos pasos:

  1. Asegurate de que tienes una versión 3.x de npm con npm --version

  2. Desinstala la versión actual de ionic: npm uninstall -g ionic

  3. Instala la última versión de ionic: npm install -g ionic

  4. Comprueba que estás en una versión 2.1 o superior con ionic -v

Migrando tu aplicación

  1. Crea una nueva app, que es donde pasaremos el código de la antigua, con: ionic start --v2 myApp

  2. Pasa todas tus páginas de app/pages/ en la versión antigua a src/pages/ del proyecto nuevo (y borra las que ha creado por defecto el comando start)

  3. Pasa todos tus providers de app/providers a src/providers

  4. Pasa todas tus pipes de app/pipes a src/pipes.

  5. En general pasa cualquier otra carpeta que tengas en app, a src (componentes custom, etc).

  6. Convierte todas las URLs de templates en relativas en la parte TypeScript de tus componentes.

  7. Abre app/app.module.ts y haz las siguientes modificaciones:

    1. Borra las páginas que había creado el generador de proyectos

    2. Incluye tus páginas en declarations y en entryComponents. Por supuesto, también tendrás que hacer los imports necesarios.

    3. Importa e incluye en declarations todas las pipes

    4. Importa e incluye en providers todos los providers

    5. Elimina cualquier uso de providers y pipes de los decoradores de los componentes

  8. Abre app.component.ts y reemplaza la rootPage de la plantilla por tu página principal

  9. Haz públicos los datos miembro de componentes a los que se accede desde sus templates

  10. Pasa los <button> a <button ion-button>, pero NO los FAB buttons

  11. Revisa la nueva documentación de FAB buttons. Modifica los FAB buttons para pasar de
    <button ion-fab fab-right>
    a
    <ion-fab right> <button ion-fab> </ion-fab>

  12. Modifica los elementos donde se usan colores de variables SaSS para usar la sintaxis <div color=”primary”> en lugar de <div primary>.

  13. Mueve cualquier configuración de Ionic a IonicModule.forRoot en app.module.ts, como en el ejemplo: IonicModule.forRoot(MyApp, {configObject}).

  14. Actualiza las variables SaSS que hayas modificado en variables.scss

  15. Añade selectores a todas las páginas para limitar su CSS a las mismas

    1. Ves a la parte TS de cada página (por ejemplo myPage.ts) y añade el selector al decorador de componente:
      @Component({
      selector: 'my-page'
      })

    2. Actualiza la parte SCSS para usar el nombre del selector en lugar de la clase. Siguiendo con el ejemplo, en myPage.sass:
      my-page{
      ...
      }

  16. Si utilizabas LocalStorage, cambia el path de importación a import { Storage } from '@ionic/storage', y elimina toda referencia a LocalStorage.
    En este sentido, Cabe decir, que ahora Storage utiliza por debajo localForage, que usa IndexedDB o WebSQL si es posible, y si no localStorage.

En principio eso es todo, con estos cambios te debería funcionar tu app.

¡Saludos!