¿Qué es Yarn y para qué sirve?

7min

En el ecosistema de JavaScript y NodeJS tenemos de manera estándar el gestor de dependencias npm, que se instala de junto con Node. Es un gestor suficiente para hacer todo el trabajo del día a día, pero a lo largo del tiempo se ha demostrado que no era tan eficiente como podría ser. Es por ello que han surgido soluciones como Yarn, un gestor de paquetes alternativo.

Índice

¿Qué es Yarn?

Yarn es uno de los gestores de paquetes que existen en NodeJS, capaz de realizar la gestión de las dependencias de las aplicaciones, es decir, la instalación de paquetes, la actualización, la gestión de versiones y muchas otras cosas.

Su nombre viene de las siglas Yet Another Resource Negotiator y es justo eso, una nueva herramienta para gestionar los recursos que usamos durante el desarrollo de aplicaciones Node.

La herramienta está desarrollada por Facebook y surgió en una época en la que npm se había quedado un poco anticuado y resultaba demasiado pesado para trabajar. Trajo diversas mejoras como un incremento de la velocidad, la seguridad y la consistencia, por lo que Yarn fue muy bien acogido por la comunidad.

Principales características de Yarn

Estas son algunas de las características más importantes de Yarn, que toman especial valor en contraste con las que npm ofrecía en el momento de su lanzamiento.

Mayor velocidad en la gestión de dependencias

Yarn consigue ser más rápido en la ejecución de operaciones de gestión de las dependencias, gracias a su sistema de caché local y su enfoque paralelo. Esto implica una mejor experiencia de desarrollo en general, aunque también hay que decir que a lo largo del tiempo npm ha conseguido mejorar, acortando sensiblemente las diferencias que le separaban con Yarn.

Instalaciones offline para mayor eficiencia

La caché de Yarn también permite que, una vez que un paquete ha sido instalado, se pueda instalar en el futuro, incluso sin conexión a Internet.

Integridad y seguridad en los paquetes

Yarn también se encarga de verificar la integridad de los paquetes mediante checksums, lo que puede aportar un grado de seguridad mayor en torno a que los paquetes estén descargados e instalados tal como eran, sin alteraciones.

Compatibilidad con npm y otros ecosistemas

Puedes usar Yarn de manera compatible con el registro de npm. Esto quiere decir que puedes usar un paquete Yarn con otro de npm en un proyecto sin problemas.

Uso de lockfiles para garantizar versiones estables

Igual que el package-lock.json, en Yarn tenemos el archivo yarn.lock que nos asegura que cuando se restauran las dependencias en el proyecto se respeten las mismas versiones exactas, evitando que el proyecto funcione de manera distinta en dos ordenadores o en el servidor y el ordenador de desarrollo.

¿Cómo instalar Yarn en tu sistema?

Vamos a ver los pasos que debemos realizar para instalar Yarn en nuestro ordenador y usarlo para tareas de desarrollo.

Primero cabe decir que en versiones de Node recientes tenemos Corepack, que es una herramienta que nos permite de una manera sencilla instalar programas basados en Node con una gestión de versiones por proyecto más eficiente.

npm install -g corepack

Luego podemos usar Yarn para inicializar un proyecto y Corepack se encargará de instalarlo en la versión más reciente.

Aunque no uses Corepack, puedes instalar Yarn de varias otras maneras dependiendo del sistema operativo.

Instalación de Yarn en Windows

Aunque puedes descargar el instalador desde la página oficial de Yarn, la alternativa más sencilla de instalación de Yarn en Windows es a través del gestor de paquete Chocolatey, con este comando:

choco install yarn

Instalación de Yarn en macOS

En MacOS usamos Homebrew para instalar los programas de consola como Yarn. Lo puedes hacer con el siguiente comando.

brew install yarn

Instalación de Yarn en Linux

En distribuciones basadas en Debian/Ubuntu, si ya tenemos Node.js, puedes instalar Yarn a partir de npm.

npm install -g yarn

Comandos básicos de Yarn

Una vez tenemos ya instalado Yarn podemos usarlo para realizar las operaciones típicas que venimos realizando con el clásico npm. Veamos una lista de comandos esenciales.

Cómo iniciar un nuevo proyecto con Yarn

El inicio de un nuevo proyecto NodeJS / JavaScript se hace con el comando «init».

yarn init

Este comando creará el conocido archivo package.json en tu carpeta de proyecto.

Instalación de dependencias con Yarn

La instalación de dependencias con Yarn se hace igual que en npm, con «yarn install».

yarn install

Este comando instala todas las dependencias que requiera un proyecto, definidas en el package.json, junto con lo definido en el yarn.lock.

Ahora bien, si necesitas instalar un paquete en particular en tu proyecto, tendrás que indicar su nombre a continuación.

yarn add nombre-paquete

Actualización y eliminación de paquetes

Para actualizar un paquete que tengas instalado lanzas el comando «yarn upgrade», seguido del nombre del paquete.

yarn upgrade nombre-paquete

Si lo que quieres es eliminar un paquete el comando es «remove», de este modo:

yarn remove nombre-paquete

Uso de scripts en Yarn para automatización

Igual que tenemos los scripts de npm, podemos usar esos mismos comandos definidos en el package.json para automatizar tareas o acciones en el proyecto. Los ejecutas directamente con el nombre del script:

yarn nombre-del-script

Manejo del archivo yarn.lock

Este archivo es el que nos asegura que las dependencias que instalamos en un proyecto, cuando ejecutamos «yarn install» sean las mismas que se instalaron en el proyecto original. Esto es útil para gestionar las versiones de una manera consistente.

El caso es que este archivo es gestionado automáticamente por Yarn, por lo que no debes modificarlo a mano.

Ventajas de usar Yarn en el desarrollo de proyectos

Vamos a remarcar algunas ventajas importantes a la hora de usar yarn en el desarrollo de proyectos, aunque hay que decir que npm ha logrado mitigar mucho las diferencias entre ambos sistemas.

Mayor rendimiento y rapidez en la instalación de paquetes

Esto ya lo hemos comentado. La instalación de dependencias es más rápida en Yarn que en su homólogo npm.

Mejor control de versiones y dependencias

El control de las dependencias también es más eficiente, lo que hace que las versiones de los paquetes sean consistentes entre todos los miembros del equipo.

Experiencia de desarrollo más fluida y estable

Esa velocidad hace que la experiencia de desarrollo con Yarn sea un poco mejor que con npm.

Mayor seguridad y confiabilidad en los paquetes

La verificación de los paquetes instalados hace que con Yarn puedas tener una mayor confiabilidad en la gestión de dependencias.

Integración con herramientas modernas de desarrollo

Puedes usar Yarn para gestionar un proyecto y seguir trabajando con todas las herramientas de desarrollo que ya usas en tu día a día, como Vite, Webpack, Babel, TypeScript, y cualquier otro.

Yarn vs. npm ¿cuál es mejor?

Como hemos dicho, siempre que comparemos Yarn con npm saldrá ganando Yarn, aunque las diferencias a día de hoy son mucho menos considerables.

Rendimiento y velocidad en la gestión de paquetes

Yarn es generalmente más rápido que npm, gracias a su instalación paralela y su sistema de cacheo de paquetes.

Seguridad y control de versiones en ambos gestores

Ambos gestores de dependencias trabajan con archivos de bloqueo (yarn.lock y package-lock.json), por lo que podemos garantizar que las dependencias instaladas tienen versiones consistentes. Además actualmente npm también hace verificación de la integridad de paquetes, aunque Yarn fue pionero en esta utilidad.

Casos en los que es mejor usar Yarn o npm

Hoy usar uno u otro sistema no tiene tantas diferencias, por lo que generalmente escogeremos el gestor de dependencias por costumbres o gustos. De todos modos, si buscas un poco más de rendimiento puedes decantarte por Yarn,

De todos modos, si no quieres instalar nada extra en tu ordenador y no quieres salirte de los estándares más habituales para la gestión de dependencias, npm también es excelente en el día de hoy.

Fernán García de Zúñiga

Productos relacionados: