npm Warm deprecated bower@1.8.8 migración a Yarn(Legacy code)AngularJS

Israel A. Cortes Flores
3 min readOct 18, 2019

Aunque migrar de Bower a Yarn parece una tarea sencilla durante el proceso pueden surgir algunos problemas o dudas que me gustaría documentar para que puedan servir de ayuda.

Legacy code o código heredado es código fuente relacionado con una tecnología sin soporte técnico. Suele ser código que está en producción y por lo tanto funciona pero que por norma general no dispone de test o pruebas de regresión. En este artículo se busca mantener el mismo comportamiento para reducir al máximo el riesgo del impacto del cambio.

Sorpresa. Nos toca mantener un proyecto AngularJS y al actualizar dependencias (npm install bower) aparece el siguiente mensaje.

Nota: La configuración del bower se guarda en bower.json y .bowerrc (Ruta de destino).

Menos mal que tenemos un enlace: https://bower.io/blog/2017/how-to-migrate-away-from-bower/ Si leemos el documento nos recomienda el paso a Yarn .

¿Qué es Yarn? Yarn es un gestor de paquetes como Bower y como NPM.

¿Por qué usar Yarn y no NPM? Sencillamente porque es más rápido (tiempo=Money) incluso que la nueva versión 5 de NPM.

¿Por dónde empezamos?

El artículo antes referido nos da las pautas.

  • Si NO tienes fichero package.json crea uno.

npm init

  • Instalar Yarn (hay varias opciones) easy.

npm install yarn

  • Instalar bower-away

yarn global add bower-away

  • Ejecutar bower-away

bower-away

Nota: Si obtenemos un Error: ENOENT: no such file or directory, es que en la carpeta donde bower descargaba los paquetes hay una carpeta que no es un paquete. Mover para restaurar tras el proceso.

  • Ejecutamos bower-away para que analice los cambios a realizar en package.json

bower-away –diff

  • Ejecutamos bower-away para que aplique los cambios a package.json.

bower-away — apply

Nota: Si bower-away — diff no consigue encontrar la dependencia dejará en package.json una ruta git://

El cambio es sencillo pero FUNDAMENTAL, eliminamos git://github.com/ y .git

Borramos la carpeta de los antiguos paquetes descargados por bower fichero .bowerrc

Ruta de descargar paquetes

Los ficheros por defecto se descargan en la carpeta node_modules como NPM, para modificar la ruta y usar la misma ruta que bower fichero .bowerrc se debe crear fichero .yarnrc y añadir

modules-folder <path>

Por defecto bower-away configura los paquetes para que se descarguen a la subcarpeta @bower_components , simplemente hay que eliminar en el package.json por cada paquete la subcarpeta

Y eliminar el script postinstall de package nuget “scripts”: { },

POR FIN INSTALAMOS DEPENDIENCIAS

yarn install

Nota: Si al descargar las dependencias tenemos un error revisar Nota de punto anterior referencia a git

--

--