DICCIONARIO · Y

Yarn

Yarn es un gestor de paquetes de código abierto para proyectos JavaScript y Node.js que instala, actualiza y bloquea las dependencias de un proyecto a partir de su package.json y de un archivo yarn.lock. Nació en 2016 para lograr instalaciones rápidas y reproducibles, y hoy destaca por sus workspaces para monorepos y por Plug'n'Play.

Germán Gutiérrez Escrito por Germán Gutiérrez 7 min de lectura
Ficha rápida
Tipo
Gestor de paquetes para JavaScript y Node.js
Presentación
11 de octubre de 2016 (Facebook, con Exponent, Google y Tilde)
Versiones
Yarn Classic (1.x, solo parches de seguridad) y Yarn moderno o Berry (2.x en adelante)
Archivo de bloqueo
yarn.lock
Licencia
BSD de 2 cláusulas (código abierto)
Instalación recomendada
A través de Corepack, fijando la versión por proyecto

≡En resumen

  • Yarn instala las dependencias de un proyecto JavaScript y guarda las versiones exactas en yarn.lock para que todo el equipo tenga la misma instalación.
  • Yarn Classic (1.x) está congelado y solo recibe parches de seguridad; los proyectos nuevos deberían usar Yarn moderno (Berry).
  • Plug'n'Play sustituye la carpeta node_modules por un único archivo .pnp.cjs, aunque puedes volver a node_modules con una línea de configuración.
  • Frente a npm y pnpm, Yarn brilla en monorepos gracias a sus workspaces y a su control estricto de dependencias.
  • Lo importante no es qué gestor eliges, sino usar uno solo por proyecto y respetar su archivo de bloqueo.

01 ¿Qué es Yarn?

Facebook lo presentó el 11 de octubre de 2016, desarrollado junto con Exponent (hoy Expo), Google y Tilde. El objetivo era resolver tres problemas que el cliente de npm de la época tenía en proyectos grandes: instalaciones lentas, resultados distintos en cada máquina y dependencia constante de la red. De ahí sus tres promesas iniciales: archivo de bloqueo, caché offline e instalación determinista. En inglés, yarn significa «hilo», un guiño a la idea de tejer las dependencias de un proyecto.

Yarn no sustituye a Node.js ni al registro de npm: se ejecuta sobre Node.js y descarga los paquetes del mismo registro público. Lo que cambia es cómo se resuelven, se guardan y se enlazan.

02 Yarn Classic vs Yarn Berry: las dos versiones de Yarn

Cuando alguien habla de Yarn puede referirse a dos productos muy distintos. Yarn Classic es la rama 1.x, la que se popularizó entre 2016 y 2019. En 2020 llegó Yarn 2, apodado Berry por el nombre de su repositorio: una reescritura completa en TypeScript que cambió la forma de instalar dependencias. Las versiones 3 y 4 continúan esa línea, y el equipo publica hoy sus novedades en el repositorio yarnpkg/berry.

Aspecto Yarn Classic (1.x) Yarn moderno (2.x en adelante)
Estado Congelado: solo parches de seguridad (última 1.22.22) Desarrollo activo (rama 4.x)
Instalación de dependencias Carpeta node_modules Plug'n'Play por defecto (.pnp.cjs); node_modules opcional
Configuración .yarnrc .yarnrc.yml
Instalación en CI sin cambios yarn install --frozen-lockfile yarn install --immutable
Ejecutar un paquete sin instalarlo No tiene equivalente propio (se usa npx) yarn dlx
Versión de Yarn Global en la máquina Fijada por proyecto (packageManager en package.json)
Diferencias entre Yarn Classic y Yarn moderno (Berry)

03 Cómo funciona Yarn: yarn.lock, caché y Plug'n'Play

01

package.json

Declara qué dependencias necesita el proyecto y con qué rango de versiones (por ejemplo, ^18.2.0).

02

yarn.lock

Registra la versión exacta resuelta de cada paquete y subdependencia. Se sube al repositorio y no se edita a mano.

03

Caché

Guarda los paquetes descargados para reinstalar sin volver a pedirlos a la red y para trabajar sin conexión.

04

Plug'n'Play (PnP)

En Yarn moderno, en lugar de copiar miles de archivos en node_modules, genera un cargador .pnp.cjs que indica a Node.js dónde está cada paquete.

Plug'n'Play es la gran diferencia de Yarn moderno. Según su documentación, evita las llamadas «dependencias fantasma» (usar en el código un paquete que no has declarado y que solo funciona porque otro lo instaló), da errores más claros y reduce el trabajo en disco. El precio es que algunas herramientas antiguas esperan una carpeta node_modules. Si alguna falla, basta con añadir nodeLinker: node-modules al archivo .yarnrc.yml para instalar como siempre.

04 Cómo instalar Yarn y comandos básicos

  1. 1

    Instala Corepack

    Corepack viene con Node.js desde la versión 14.19 hasta la 24. A partir de Node.js 25 ya no se incluye, así que se instala con npm install -g corepack.

  2. 2

    Crea o prepara el proyecto

    En un proyecto nuevo ejecuta yarn init -2. En uno existente, yarn set version stable fija la última versión estable y la anota en package.json.

  3. 3

    Instala las dependencias

    yarn install (o solo yarn) lee package.json y yarn.lock e instala todo lo necesario.

  4. 4

    Añade o quita paquetes

    yarn add paquete, yarn add -D paquete para dependencias de desarrollo y yarn remove paquete para eliminarlo.

  5. 5

    Actualiza con control

    En Yarn moderno, yarn up paquete actualiza una dependencia; en Classic, yarn upgrade. Revisa el cambio de yarn.lock antes de subirlo.

  6. 6

    Ejecuta scripts

    yarn run build, o directamente yarn build, lanza los scripts definidos en package.json.

05 Yarn vs npm vs pnpm: diferencias y cuál elegir

Los tres gestores usan el mismo registro de paquetes y el mismo package.json, así que puedes cambiar de uno a otro. Las diferencias están en cómo guardan las dependencias, en su velocidad y en el soporte para monorepos. Las tres son herramientas open source y gratuitas.

Aspecto npm Yarn (moderno) pnpm
Viene con Node.js Sí No (Corepack o instalación aparte) No (Corepack o instalación aparte)
Archivo de bloqueo package-lock.json yarn.lock pnpm-lock.yaml
Cómo guarda los paquetes node_modules plano Plug'n'Play o node_modules Almacén global con enlaces duros y node_modules no plano
Espacio en disco Una copia por proyecto Caché compartida; PnP evita copiar Cada versión de un paquete, una sola vez en el disco
Monorepos Workspaces desde npm 7 Workspaces muy maduros y constraints Workspaces con pnpm-workspace.yaml
Ideal para Proyectos sencillos y máxima compatibilidad Monorepos y equipos que quieren reglas estrictas Muchos proyectos en la misma máquina y CI rápidas
Comparativa de gestores de paquetes de JavaScript
  • ✓Elige npm si quieres cero configuración y la máxima compatibilidad con tutoriales y herramientas.
  • ✓Elige Yarn si trabajas en un monorepo con varios paquetes o aplicaciones y quieres workspaces y reglas estrictas.
  • ✓Elige pnpm si te preocupan el espacio en disco y la velocidad de instalación en integración continua.
  • ✓Si heredas un proyecto, usa el gestor que indique su archivo de bloqueo o el campo packageManager.
  • ✓Documenta la elección en el README para que nadie instale con otro gestor por costumbre.

06 Yarn workspaces: monorepos para webs y productos SaaS

Un workspace es cada paquete dentro de un mismo repositorio. Con workspaces, un único yarn install instala las dependencias de todos, enlaza entre sí los paquetes internos y comparte un solo yarn.lock. Es la base de muchos monorepos: el frontal web, el panel de administración, la API y una librería de componentes compartida viven juntos y se versionan a la vez.

Ejemplo · Un SaaS con web, app y librería común

Un equipo que construye un producto por suscripción tiene tres piezas: la web de marketing, el panel del cliente en React y un paquete @empresa/ui con botones y formularios. Con Yarn workspaces, un cambio en un botón se prueba a la vez en la web y en el panel, sin publicar el paquete en ningún registro. Es una de las decisiones de stack que conviene tomar al principio, como explicamos en la guía sobre cómo crear un SaaS paso a paso.

07 Yarn en proyectos web reales: cuándo importa de verdad

Para el cliente final, el gestor de paquetes es invisible, pero influye en algo que sí nota: la estabilidad. Una instalación reproducible evita que una actualización silenciosa de una librería rompa la web el día del despliegue. Por eso, en el desarrollo de aplicaciones web a medida fijamos siempre un gestor y una versión por proyecto, y lo mismo ocurre con los frameworks de frontal, que se instalan y actualizan a través de él.

En productos que crecen con el tiempo, como un software por suscripción, un monorepo bien organizado con Yarn o pnpm reduce el coste de mantenimiento, porque todas las piezas comparten versiones y herramientas. Es una de las prácticas que aplicamos en el desarrollo de SaaS que hacemos para clientes y para nuestros propios productos.

Preguntas frecuentes sobre Yarn

Es un gestor de paquetes para JavaScript y Node.js. Instala las librerías que necesita un proyecto, resuelve sus dependencias y guarda las versiones exactas en yarn.lock para que todas las instalaciones sean idénticas.

Sirve para añadir, actualizar y eliminar dependencias, ejecutar los scripts del package.json y gestionar monorepos con workspaces, garantizando que todo el equipo y los servidores usen las mismas versiones.

Ambos usan el mismo registro y el mismo package.json. npm viene con Node.js y usa package-lock.json; Yarn usa yarn.lock, ofrece Plug'n'Play en lugar de node_modules y tiene workspaces y reglas más avanzadas para monorepos.

Es el nombre informal de Yarn moderno, de la versión 2 en adelante. Se lanzó en 2020 como una reescritura completa en TypeScript e introdujo Plug'n'Play y la configuración en .yarnrc.yml.

Funciona, pero está congelado: su repositorio solo acepta correcciones de seguridad y la última versión es la 1.22.22. Para proyectos nuevos conviene usar Yarn moderno, npm o pnpm.

La vía recomendada es Corepack: en Node.js 14.19 a 24 ya viene incluido, y desde Node.js 25 se instala con npm install -g corepack. Después, yarn init -2 crea un proyecto o yarn set version stable fija la versión en uno existente.

Depende de la prioridad. pnpm ahorra más disco y suele instalar muy rápido gracias a su almacén global; Yarn ofrece Plug'n'Play y herramientas muy maduras para monorepos. Ambos son buenas opciones si el equipo usa solo uno.

Sí. Es software de código abierto con licencia BSD de 2 cláusulas y no tiene versiones de pago.

Fuentes consultadas

Germán Gutiérrez

Sobre el autor

Germán Gutiérrez

Development Manager en appyweb

Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.

Ver perfil en LinkedIn ↗

Términos relacionados

Ver todos los términos →
N Node.js Node.js es un entorno de ejecución de JavaScript de código abierto y multiplataforma que permite usar JavaScript fuera del navegador, sobre todo en servidores, gracias al motor V8 y a un modelo de entrada/salida asíncrono basado en eventos. Importa porque permite construir APIs, backends y herramientas con el mismo lenguaje que el frontend. J JavaScript JavaScript es un lenguaje de programación interpretado o compilado al vuelo, dinámico y basado en prototipos, que los navegadores ejecutan para hacer interactivas las páginas web. Junto a HTML y CSS forma la base de la web: lo usa el 98,9 % de los sitios, y con Node.js también sirve para servidores y aplicaciones. O Open Source El open source (código abierto) es el software cuyo código fuente se publica con una licencia que permite a cualquiera usarlo, estudiarlo, modificarlo y redistribuirlo, incluso con fines comerciales. Para serlo oficialmente, la licencia debe cumplir los diez criterios de la Open Source Definition de la OSI. Linux, Android y WordPress son ejemplos de software open source. F Framework Un framework es un marco de trabajo de software que da a los programadores una estructura, unas reglas y un conjunto de componentes listos para construir aplicaciones sin partir de cero. A diferencia de una librería, el framework controla el flujo del programa y llama a tu código. Laravel, Django, Angular o Flutter son frameworks. R React y React Native React es una biblioteca de JavaScript para construir interfaces de usuario web a partir de componentes, y React Native es un framework que usa ese mismo modelo para crear apps móviles con componentes nativos de iOS y Android. Los creó Facebook (hoy Meta) en 2013 y 2015 y, desde 2026, los gestiona la React Foundation. A API Una API (Application Programming Interface, interfaz de programación de aplicaciones) es un conjunto de reglas y puntos de acceso que permite que dos programas se comuniquen: uno pide datos o acciones y el otro responde en un formato acordado, sin que ninguno conozca el código interno del otro. Es lo que conecta webs, apps, pasarelas de pago e inteligencia artificial.

Cuéntanos tu proyecto. Te respondemos en 48 h.

Auditoría gratuita de IA, campañas, web y SEO, con prioridades y cifras reales de tu negocio.

✓ Sin compromiso ✓ Respuesta en 48 h laborables ✓ Un consultor senior, no un bot
WA WhatsApp