Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Yarn 1.0 está ya aquí

Logo de Yarn

Hace casi un año (10 meses y 22 días meses para ser exactos) os informamos del lanzamiento de la herramienta Yarn, creada por Facebook para sustituir y mejorar a npm (el gestor de paquetes de Node.js). npm juega un papel cada vez más importante en todo tipo de desarrollos, tanto en back-end como en front-end, pero tenía algunos problemas que lo hacían inviable en proyectos muy grandes como los que maneja Facebook. Por ejemplo, su lentitud y el hecho de que no era predecible en cuanto a la manera de descargar las dependencias. Esos eran los motivos principales de haber creado Yarn.

Desde su lanzamiento muchos programadores han adoptado Yarn como un sustituto inmediato de npm, ganando sobre todo en velocidad y comodidad de uso. Sin embargo npm se ha puesto las pilas y presentó hace poco su versión 5 que solucionaba algunos de esos problemas, quedando (casi) en igualdad de condiciones con Yarn. Pero solo casi...

Ahora Yarn vuelve a adelantarles por la derecha con el lanzamiento de su versión 1.0, dando el paso a la madurez con este número de versión y añadiendo algunas novedades interesantes.

Entre las características a destacar de Yarn 1.0 tenemos:

1.- Espacios de trabajo (Workspaces)

Permiten la capacidad de agregar e instalar dependencias desde varios archivos package.json en varias carpetas, sincronizando además las dependencias entre todos ellos.

Esto es muy útil para proyectos de tipo "monorepo" (es decir, con un solo repositorio de código) pero que realmente gestionan varios sub-módulos que pueden funcionar por separado. Los workspaces te permiten que cada subcarpeta que te interese pueda tener su propio package.json y por lo tanto que se pueda compilar por separado, mientras que si lo deseas puedes compilar todos a la vez (o un proyecto mayor en el raíz que hace uso de los demás) sin tener que ir uno por uno.

Ejecutas yarn install en la raíz y obtienes las dependencias de todos. Así de sencillo.

Puedes leer la documentación oficial para ver algún ejemplo de uso. Es especialmente interesante saber que se pueden usar patrones de tipo "Glob" para definir los sub-módulos.

2.- Auto-mezcla de archivos de bloqueo (lockfiles)

Si en un mismo proyecto trabajan muchas personas que añaden dependencias a los archivos package.json, es muy fácil que se pueda producir un conflicto (en el control de código fuente) en el archivo yarn.lock (o en package-lock.json que es el que usa npm 5+), que controla el orden y las versiones de los paquetes que se van a instalar en local en cada equipo.

Resolver este tipo de conflictos manualmente es sencillo, pero si hay muchos puede ser tedioso y delicado.

La nueva característica de auto-mezcla de Yarn 1.0 hace que se resuelvan automáticamente al usar yarn install, dejando el archivo sin conflictos en disco para que lo único que tengas que hacer es marcarlo como "resuelto" en Git.

3.-Resolución de versiones selectiva

Una situación lamentablemente común es la siguiente: tu proyecto utiliza una serie de dependencias, y uno de los paquetes de los que dependen éstas a su vez, lanza una actualización que resuelve un bug o un problema de seguridad importantes. Si el paquete que utiliza tu aplicación no se actualiza para forzar el uso de la nueva versión corregida, tu aplicación seguirá usando como dependencia de segundo nivel (o más) un paquete con problemas.

Para evitar este problema ahora Yarn permite añadir una sección resolutions al archivo package.json que indica a la herramienta qué versiones específicas de ciertos paquetes queremos usar, aunque la dependencia que se marca sea con otra versión.

Consulta la documentación de esta característica.

4.- Otras cosas

Lo anterior es lo más destacable y llamativo, pero esta versión trae multitud de otras cosas:

  • Mejoras en la experiencia de actualización interactiva de paquetes
  • Verificación de la integridad de archivos más rápida
  • Ahora puedes incluir en tu proyecto el "parser" de los archivos de lock como un paquete npm.
  • La posibilidad de delegar la ejecución de Yarn a una versión específica de la herramienta, de modo que aseguremos que todo el equipo usa la misma.
  • Un montonazo de arreglos de pequeños bugs.

Puedes ver el log completo con todos los cambios aquí, así como el anuncio oficial de la versión.

Seguro que npm no tarda en añadir características similares, pero mientras tanto Yarn va un paso por delante.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Desarrollo Web | Herramientas

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.