- Yarn utiliza un modelo de dos niveles: una interfaz de línea de comandos global más una versión específica para cada proyecto, lo que garantiza un comportamiento coherente.
- Las instalaciones deterministas con yarn.lock y un sistema de almacenamiento en caché agresivo ofrecen una gestión de dependencias rápida y reproducible.
- Modern Yarn Berry añade PnP, espacios de trabajo y .yarnrc.yml para una vinculación flexible, almacenamiento en caché e integración con editores/CI.
- La configuración correcta de la variable PATH, el manejo de archivos de bloqueo y la gestión de la caché son esenciales para evitar problemas comunes de instalación.
Si estás intentando instalar Yarn para tus proyectos de JavaScript y te sientes un poco perdido entre tantas opciones, no estás solo. Yarn ha evolucionado mucho en los últimos años, coexiste con npm y existen diferentes versiones y flujos de instalación dependiendo del sistema operativo e incluso del estilo de proyecto que se utilice (monorepo, PnP, node_modules clásico, etc.).
La buena noticia es que, una vez que se comprende cómo se instala Yarn y cómo funciona su modelo de dos niveles (CLI global + Yarn específico del proyecto), todo empieza a tener sentido. En esta guía, explicaremos en detalle cómo instalar Yarn en los sistemas más comunes, cómo integrarlo en un proyecto JavaScript real, qué lo diferencia de npm y cómo solucionar los problemas típicos que suelen surgir la primera vez que se adopta.
Qué es Yarn y por qué sigue siendo importante para los proyectos de JavaScript
Yarn es un gestor de paquetes para Node.js diseñado con tres objetivos principales en mente: velocidad, seguridad e instalaciones deterministas. Nació como una alternativa a npm en un momento en que npm tenía problemas de rendimiento y fiabilidad, y aunque npm ha mejorado mucho desde entonces, Yarn sigue siendo extremadamente popular, especialmente en torno a React y las pilas tecnológicas modernas de frontend.
Una de las principales fortalezas de Yarn es su proceso de instalación determinista, basado en el yarn.lock . Este archivo corrige las versiones exactas de todas las dependencias directas y transitivas, de modo que la instalación en diferentes máquinas o servidores de integración continua siempre genere el mismo árbol de dependencias, eliminando el clásico problema de "solo funciona en mi portátil".
Otra característica distintiva es su comportamiento de almacenamiento en caché agresivo, que permite a Yarn reutilizar cualquier paquete que ya haya descargado. Gracias a esto, las instalaciones repetidas son muchísimo más rápidas, e incluso Yarn puede funcionar en modo sin conexión si todos los paquetes necesarios se han almacenado en caché previamente.
Modern Yarn (a menudo llamado "Berry" en las versiones 2.x, 3.x y 4.x) incorpora capacidades avanzadas adicionales, como Plug'n'Play (PnP) y espacios de trabajo. PnP puede eliminar por completo el sistema tradicional. node_modules Se puede reemplazar la carpeta con archivos de manifiesto que le indican a Node.js la ubicación exacta de cada paquete, lo que ahorra mucho espacio en disco y acelera algunas operaciones. Por otro lado, los espacios de trabajo son ideales para monorepositorios, ya que vinculan varios paquetes en un único repositorio con un archivo de bloqueo compartido y una gestión centralizada de dependencias.
Desde el punto de vista de la seguridad, Yarn verifica las sumas de comprobación de cada paquete antes de su ejecución. Esta validación de integridad añade una capa adicional de protección contra artefactos corruptos o manipulados, lo cual resulta especialmente útil en entornos corporativos o sensibles.
Entendiendo la diferencia entre Yarn Classic y Yarn Berry (Hilo Moderno)

Antes de hablar de la instalación, es fundamental entender que existen dos grandes familias de Yarn: Classic (1.x) y Berry (2.x/3.x/4.x). Yarn Classic vive en su propio repositorio histórico y solo recibe correcciones de seguridad, mientras que todo el desarrollo activo se centra en la línea Berry más nueva alojada en el yarnpkg/berry repositorio
Yarn Classic (alrededor de 1.22) es lo que la mayoría de la gente todavía obtiene al instalar la versión global. yarn Interfaz de línea de comandos con npm. Actualmente, esa interfaz de línea de comandos global actúa principalmente como un lanzador: dentro de un proyecto configurado con Berry, el comando global simplemente delega la ejecución a la versión local de Yarn específica del proyecto, de modo que se puede actualizar el conjunto de herramientas del proyecto sin modificar las herramientas globales.
Yarn Berry introduce profundos cambios arquitectónicos, entre los que destacan la función Plug'n'Play y un potente sistema de complementos. Por defecto, Berry prefiere PnP en lugar de node_modules, admite flujos de trabajo de instalación cero (dependencias comprometidas en el repositorio) y permite una configuración granular fina a través de .yarnrc.ymlincluyendo cómo se enlazan los módulos, cómo se gestionan las cachés o cómo se definen los registros y los proxies.
Los propios responsables del mantenimiento de Yarn recomiendan encarecidamente migrar de la versión 1.x a la última versión de Berry siempre que sea posible. Las versiones modernas se han mantenido activamente durante más tiempo, corrigen clases enteras de problemas presentes en Classic y ofrecen flexibilidad de configuración a través de nodeLinker configuración para que aún puedas usar la clásica node_modules Diseño o enlaces simbólicos al estilo pnpm cuando PnP no sea una buena opción.
Si su ecosistema o herramientas aún no están preparados para PnP, no se preocupe, no está en un callejón sin salida. Simplemente configurando nodeLinker: node-modules in .yarnrc.ymlBerry se comporta de forma más similar a las instalaciones tradicionales de npm, al tiempo que conserva su archivo de bloqueo determinista, su comportamiento de almacenamiento en caché y una experiencia de línea de comandos mejorada.
Requisitos del sistema y estrategia global de instalación de hilo
Independientemente del sistema operativo que utilice, el requisito indispensable para usar Yarn es tener Node.js instalado. Yarn es una CLI basada en Node y depende de Node para funcionar, por lo que primero debes confirmar que Node está disponible con un comando rápido. node -v En tu terminal. Si ves un número de versión en lugar de un error de "comando no encontrado", todo está correcto.
Si Node.js no está instalado o está desactualizado, instálelo o actualícelo utilizando el método recomendado para su plataforma. En Linux puedes usar paquetes de distribución o repositorios de NodeSource, en macOS puedes preferir Homebrew, MacPorts o nvm, y en Windows el instalador oficial o un gestor de paquetes como Chocolatey o Scoop. Muchos flujos de trabajo de Yarn requieren al menos Node 14.18, y para Berry, Node 16 o 18 LTS suele ser la versión óptima.
Los autores de Yarn recomiendan un modelo de instalación de dos niveles. Primero, instale una global yarn Ejecuta el comando CLI una vez (generalmente a través de npm) y, dentro de cada proyecto, usa ese comando global para configurar una versión de Yarn específica del proyecto que reside directamente en el repositorio. Esto garantiza que todos los colaboradores y trabajos de CI ejecuten exactamente la misma versión de Yarn definida por el proyecto.
Instalar la interfaz de línea de comandos global de Yarn a través de npm es muy sencillo. Dado que npm viene incluido por defecto con Node.js, puedes ejecutar:
sudo npm install -g yarn
Una vez finalizada la instalación, verifique que la interfaz de línea de comandos global sea accesible. Ejecutar:
yarn --version
Si ves algo como 1.22.x, eso significa que el lanzador clásico global funciona correctamente. A partir de ahora, cuando acceda a un proyecto que utilice Berry, este comando global transferirá de forma transparente el control a la versión de Yarn configurada localmente y almacenada en el repositorio.
Instalación de Yarn en un proyecto JavaScript específico
Una vez lista la interfaz de línea de comandos global, el siguiente paso es "anclar" una versión específica de Yarn a cada proyecto. Esto es precisamente lo que garantiza la coherencia entre los equipos de tus compañeros y tus pipelines de CI/CD: todos ejecutan el mismo binario de Yarn y, por lo tanto, comparten el mismo comportamiento.
Para empezar, diríjase al directorio de su proyecto (o cree uno nuevo si está creando una aplicación desde cero). Por ejemplo:
mkdir my-project
cd my-project
Dentro de esa carpeta, utilice el especial yarn set version comando para seleccionar una versión moderna de Berry. Una opción típica es seguir la línea “baya” en desarrollo activo:
yarn set version berry
Detrás de escena, Yarn resuelve “berry” al último binario de Berry, lo descarga y lo almacena dentro de un .yarn/releases directorio en tu proyecto. Al mismo tiempo, crea o actualiza un .yarnrc.yml Agregue un archivo en la raíz del proyecto para indicarle al lanzador global que delegue en ese binario local.
Si ahora corres yarn --version Nuevamente, desde dentro del proyecto, la salida cambiará a la versión fijada al proyecto. Podrías ver algo como 4.5.0 o cualquier otra versión 3.x/4.x, lo que indica que ya no está utilizando la CLI clásica global, sino la versión local de Berry alojada en su repositorio.
A partir de este momento, cada comando de Yarn que se ejecute en ese directorio (o en sus subdirectorios) utilizará la versión de Yarn específica del proyecto. Esto permite que un equipo migre gradualmente diferentes proyectos a versiones más recientes de Yarn a su propio ritmo, manteniendo un único lanzador global instalado en las máquinas de los desarrolladores.
Comandos básicos de hilo para el desarrollo diario
Una vez que Yarn esté instalado e integrado en tu proyecto, solo necesitarás un pequeño conjunto de comandos para cubrir la mayoría de las tareas diarias. La interfaz de línea de comandos es muy completa, pero con solo unos pocos subcomandos ya se puede gestionar gran parte de las dependencias y los scripts.
Si te quedas atascado o quieres explorar más opciones, cada comando acepta un indicador de ayuda. Corriendo:
yarn --help
imprime ayuda general, mientras se adjunta --help Tras ejecutar un subcomando específico, se ofrecen consejos de uso contextuales. Por ejemplo, yarn install --help Explica todas las opciones disponibles para el proceso de instalación de dependencias.
Para poner en marcha un proyecto completamente nuevo, puedes pedirle a Yarn que genere los archivos de configuración básicos. Dentro de una carpeta vacía, simplemente ejecute:
yarn init
Ese comando te guía a través de algunas indicaciones y escribe un package.json suma un yarn.lock . El primero declara los metadatos, scripts y dependencias de tu proyecto, mientras que el segundo actúa como el registro canónico de las versiones exactas que Yarn resolvió en el momento de la instalación.
Al unirse a un repositorio existente que ya utiliza Yarn, el punto de partida habitual es la instalación de todas las dependencias. Desde la raíz del proyecto, simplemente ejecuta:
yarn install
Yarn luego lee package.json y yarn.lockDescarga lo que falte y configura el árbol de dependencias. Gracias al almacenamiento en caché, las instalaciones posteriores, incluso en entornos de integración continua (CI), serán mucho más rápidas que la ejecución inicial.
Agregar nuevas dependencias es igualmente sencillo con el add subcomando. Para instalar, por ejemplo, Express, usarías:
yarn add express
Este único comando descarga el paquete y lo actualiza. package.json y refresca yarn.lock. No es necesario editar manualmente los archivos JSON; Yarn mantiene sincronizados los rangos declarados y las versiones bloqueadas automáticamente.
Verificación rápida de cordura: Servidor exprés pequeño con hilo
Si quieres asegurarte de que Yarn funciona correctamente, puedes escribir una pequeña prueba básica usando Express. Suponiendo que te encuentras dentro de un proyecto y ya has ejecutado yarn add express, crea un archivo llamado index.js con el siguiente servidor mínimo:
const express = require("express");
const app = express();
app.get("/", (req, res) => res.send("Yarn is working!"));
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
En lugar de llamar a Node directamente, puedes ejecutar este script a través de Yarn, lo cual puede resultar conveniente en entornos PnP. Uso:
yarn node index.js
Abre otra terminal y verifica que el servidor responda correctamente. Una simple:
curl http://localhost:3000
debería devolver el mensaje “¡Yarn está funcionando!”. Si eso sucede, sabrás que Yarn resolvió la dependencia, configuró la resolución del módulo y ejecutó el script sin problemas.
Gestión de dependencias, scripts y la caché de Yarn
Más allá de la instalación y las adiciones básicas, Yarn ofrece varias utilidades para mantener y desarrollar de forma limpia el gráfico de dependencias. Estos comandos evitan la edición manual y mantienen... package.json y yarn.lock constante en todo momento.
Para eliminar una dependencia que ya no necesita, utilice el remove subcomando. Por ejemplo:
yarn remove package-name
Yarn desinstalará el paquete y lo eliminará de package.jsony actualice el archivo de bloqueo en consecuencia. Esto evita que los módulos obsoletos o sin usar permanezcan en el árbol de dependencias.
La actualización de dependencias se puede realizar de forma masiva o para un paquete específico. Sin argumentos
yarn upgrade
Resuelve versiones más recientes compatibles según los rangos declarados, mientras que:
yarn upgrade package-name
apunta a una única dependencia. En ambos casos, Yarn reescribe yarn.lock para reflejar el gráfico de dependencias actualizado.
Cuando su proyecto define scripts en package.json, Hilo run El subcomando es la forma de ejecutarlos. Un guion como este:
"scripts": {
"start": "node index.js"
}
se puede iniciar con:
yarn run start
y en muchos casos el más corto yarn start El alias también funciona. Esto proporciona una capa de abstracción limpia sobre Node u otras herramientas, independientemente de la estrategia subyacente de vinculación de módulos.
Yarn mantiene una caché local o global de todos los paquetes descargados previamente para acelerar las instalaciones y proporcionar un funcionamiento sin conexión. A veces, especialmente después de experimentos o cambios de versión múltiples, la caché puede volverse ruidosa o corrupta. Siempre que sospeche que hay problemas con la caché, puede restablecerla con:
yarn cache clean
Si tienes curiosidad por saber dónde almacena Yarn esos artefactos en caché, yarn cache dir imprime la ubicación. Esto resulta especialmente útil cuando necesitas incluir la carpeta de caché en la lista blanca de un antivirus en Windows para evitar instalaciones lentas causadas por el análisis agresivo de cada archivo descargado.
Configurando Yarn con .yarnrc.yml
Modern Yarn centraliza la configuración del proyecto en el .yarnrc.yml . Este documento YAML controla cómo se vinculan las dependencias, dónde se almacenan las cachés, qué tan estricto debe ser PnP, las URL del registro, la telemetría y más.
Una configuración típica podría ser la siguiente:
nodeLinker: pnp
pnpMode: strict
compressionLevel: mixed
enableGlobalCache: true
enableTelemetry: false
El nodeLinker La configuración es especialmente importante porque define cómo se resuelven los módulos. Las opciones válidas incluyen: pnp (Plug'n'Play sin node_modules carpeta), node-modules (diseño clásico) y, a veces, un enlazador de estilo pnpm. Si encuentra problemas de compatibilidad con herramientas que codifican de forma rígida. node_modules supuestos, cambiando a node-modules A menudo los resuelve.
compressionLevel Indica a Yarn con qué agresividad debe comprimir los paquetes almacenados en caché. Un valor de 0 Desactiva la compresión por completo para obtener la máxima velocidad. 1 fuerza la compresión total para un uso mínimo del disco y mixed Equilibra ambos mundos, lo cual suele ser la opción más sensata por defecto para la mayoría de los equipos.
Habilitación enableGlobalCache Esto provoca que Yarn reutilice un directorio de caché compartido en varios proyectos. De esta forma, si varios repositorios dependen de las mismas bibliotecas, Yarn evita descargarlas varias veces, ahorrando ancho de banda de red y espacio en disco.
Y por último, enableTelemetry controla si Yarn envía información de uso anónima a los responsables del mantenimiento. Muchas empresas prefieren desactivar esta opción por motivos de privacidad y cumplimiento normativo, mientras que otras la dejan activada para que sirva de guía en la hoja de ruta del proyecto; en cualquier caso, se trata simplemente de un indicador en este archivo de configuración.
Integración con Git: qué confirmar y qué ignorar
Porque Yarn almacena parte de su maquinaria dentro de un .yarn En cuanto al directorio, es importante ser cuidadoso con lo que se incluye en el control de versiones. Algunos de esos archivos deberían ser monitorizados, mientras que otros son archivos de caché o artefactos de compilación que solo aumentarían el tamaño del repositorio.
Un mínimo .gitignore La estrategia utilizada en muchos proyectos de Berry se ve así:
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
Este patrón ignora todo .yarn carpeta, pero luego incluye en la lista blanca los subdirectorios que deben confirmarse. El releases Por ejemplo, este directorio contiene el binario de Yarn específico del proyecto; sin él, otros desarrolladores podrían no obtener la misma versión de la interfaz de línea de comandos al clonar el repositorio.
Otras rutas permitidas, como .yarn/plugins or .yarn/sdks Admite complementos personalizados e integraciones con el editor. Mantenerlos bajo control de versiones garantiza que todos los miembros del equipo compartan el mismo conjunto de complementos y el mismo soporte para las herramientas de lenguaje.
El .pnp.* Las entradas son los archivos de manifiesto Plug'n'Play que describen el árbol de dependencias si se utiliza el modo PnP. Confirmar estos cambios es esencial para lograr flujos de trabajo reproducibles e incluso, en ocasiones, sin instalación, donde la integración continua o los nuevos clones pueden ejecutar el proyecto inmediatamente sin tener que regenerar los manifiestos.
Además de esto, recuerda que yarn.lock es un ciudadano de primera clase en su repositorio. Siempre debe confirmarse y actualizarse junto con los cambios de dependencia; de lo contrario, desaparecen todas las ventajas del determinismo de Yarn.
Yarn vs npm: Cuando Yarn realmente brilla
Yarn y npm resuelven el mismo problema fundamental: la gestión de dependencias de Node.js, pero Yarn se diferencia en varios escenarios prácticos. La diferencia más visible suele ser el rendimiento: gracias a las instalaciones paralelas y a un almacenamiento en caché más inteligente, Yarn suele completar las instalaciones mucho más rápido en proyectos grandes.
El uso del disco es otro punto fuerte, especialmente si se opta por la tecnología Plug and Play. Al eliminar node_modulesUn proyecto típico puede consumir mucho menos espacio en disco, y las herramientas que se integran bien con PnP pueden beneficiarse de resoluciones de módulos más rápidas, ya que Node ya no tiene que recorrer árboles de directorios profundos y repetitivos.
En términos del comportamiento del archivo de bloqueo, Yarn's yarn.lock Es ampliamente apreciado por ser compacto y altamente determinista. Registra explícitamente las decisiones de resolución, lo que facilita comprender por qué se eligió una versión en particular y depurar los conflictos de versiones.
Los monorepos son un área en la que Yarn ha estado a la vanguardia durante mucho tiempo gracias a su función de espacios de trabajo. Con los espacios de trabajo, varios paquetes en un solo repositorio comparten un archivo de bloqueo, las dependencias se elevan de manera eficiente y los paquetes locales se vinculan automáticamente sin necesidad de configuración adicional.
Entre los casos de uso reales en los que Yarn destaca claramente se incluyen a menudo configuraciones complejas de CI/CD, grandes bases de código compartidas o entornos detrás de proxies corporativos y certificados personalizados. Por ejemplo, correr yarn install --immutable El CI interno garantiza que la instalación fallará si yarn.lock El archivo no coincide package.json, que detecta estados de dependencia inconsistentes antes de que lleguen a producción.
Por otro lado, npm sigue siendo una opción perfectamente válida para proyectos más pequeños o equipos muy involucrados en el ecosistema de npm. Si solo mantienes un puñado de servicios con árboles de dependencia modestos y no dependes en gran medida de monorepos o PnP, la simplicidad de usar npm puede compensar las funciones avanzadas de Yarn.
Opciones de instalación específicas del sistema operativo
Aunque la instalación de la interfaz de línea de comandos global basada en npm funciona en casi todas partes, Yarn también ofrece distribuciones y scripts específicos para cada sistema operativo. Estas opciones son útiles si prefieres los gestores de paquetes nativos o si trabajas en sistemas que no cuentan con una configuración npm práctica.
En macOS, una opción muy popular es instalar Yarn a través de Homebrew. Un flujo típico, suponiendo que ya tengas Node (posiblemente también a través de Homebrew), es el siguiente:
brew install yarn
Si utiliza nvm u otro gestor de versiones de Node, asegúrese de que el directorio shims aparezca antes que cualquier Node de Homebrew en su PATH. De lo contrario, podrías terminar utilizando una versión de Node diferente a la esperada al ejecutar scripts de Yarn.
Otra opción en macOS es MacPorts, que puede instalar tanto Node.js como Yarn si aún no están presentes. Para un mayor control, Yarn también publica un script de instalación que funciona en macOS y en sistemas Unix genéricos; al redirigir ese script a la consola, se descarga y configura Yarn de una sola vez.
En Windows, las rutas recomendadas son el instalador MSI, Chocolatey o Scoop. El instalador MSI te guía a través de un asistente gráfico y, por lo general, se asegura de que Node.js esté presente durante el proceso. Scoop, por otro lado, te permite instalar Yarn desde la línea de comandos, sugiriendo opcionalmente Node si no está presente.
Al instalar Yarn en Windows, es una muy buena idea agregar a la lista blanca tanto la carpeta de su proyecto como el directorio de caché de Yarn, normalmente en %LocalAppData%\Yarn, en su antivirus. De lo contrario, cada descarga y escritura de archivos podría ser analizada, lo que ralentizaría drásticamente las instalaciones.
Las distribuciones de Linux suelen ofrecer varias opciones: paquetes oficiales del sistema, repositorios propios de Yarn o instalaciones manuales mediante archivos tar. En Debian y Ubuntu, por ejemplo, puedes agregar el repositorio APT de Yarn, configurar opcionalmente NodeSource para obtener una versión reciente de Node.js y luego instalar Yarn a través de apt.
En distribuciones como CentOS, Fedora, RHEL o Arch, Yarn ofrece archivos tar firmados con GPG que se pueden descargar y descomprimir en cualquier lugar del disco. En esas configuraciones manuales, normalmente necesitas verificar la firma del tarball con GPG y luego agregar el directorio Yarn descomprimido a tu PATH para que yarn Este comando está disponible en todo el sistema.
Configuración de PATH en Unix, Linux y Windows.
Una fuente común de confusión durante la instalación es la configuración de PATH: Yarn puede estar instalado, pero el intérprete de comandos no puede encontrar el binario. En ese caso, debe actualizar su entorno para que el directorio de Yarn esté incluido en la variable PATH.
Para instalaciones manuales de tarball en sistemas tipo Unix, el patrón habitual es exportar una ruta que apunte a Yarn. bin directorio. Por ejemplo:
export PATH="$PATH:/opt/yarn-[version]/bin"
Coloca esta línea en tu archivo de perfil de shell (como por ejemplo .bashrc, .bash_profile, .zshrc, o similar), luego abra una nueva sesión de terminal o cargue el archivo para que el cambio surta efecto. Una vez hecho, yarn --version Debería funcionar desde cualquier directorio.
Si te apoyas en yarn global Además de los comandos, Yarn también necesita asegurarse de que su carpeta bin global esté en la variable PATH. Una forma rápida de lograr esto es ampliar tu perfil con:
export PATH="$PATH:`yarn global bin`"
Los usuarios de conchas de pescado en cambio confían en fish_user_paths y puede ejecutar:
set -U fish_user_paths (yarn global bin) $fish_user_paths
En Windows, es posible que también deba agregar manualmente el directorio binario de Yarn a la variable de entorno PATH. Un ejemplo sencillo sería:
set PATH=%PATH%;C:\.yarn\bin
En la práctica, los instaladores gráficos o los gestores de paquetes de Windows suelen encargarse de la configuración de la variable PATH, pero resulta útil saber cómo ajustarla manualmente cuando algo no funciona como se espera.
Problemas típicos de instalación y cómo solucionarlos
Incluso con una documentación clara, ciertos problemas de instalación aparecen una y otra vez cuando los equipos adoptan Yarn. Afortunadamente, la mayoría de ellas cuentan con soluciones bien conocidas y reproducibles.
Un problema recurrente son los errores relacionados con los permisos al instalar la interfaz de línea de comandos global a través de npm. Si su prefijo npm apunta a un directorio propiedad del sistema, un comando como este:
sudo npm install -g yarn
Puede que funcione, pero no es lo ideal a largo plazo. Una mejor opción es configurar npm para que utilice un directorio global propiedad del usuario. Puedes comprobar tu prefijo actual con:
npm config get prefix
Si apunta a algo bajo /usr, crea tu propio directorio y reconfigura npm. Por ejemplo:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
Después de recargar la configuración de su shell, debería poder instalar Yarn globalmente sin problemas. sudo, evitando muchos quebraderos de cabeza con los permisos.
Otra fuente frecuente de confusión son las discrepancias de versión entre la versión global de Yarn y la versión del proyecto Yarn. Recuerde que esto es intencional: la CLI global 1.x es solo un lanzador, y cuando se usa dentro de un proyecto configurado con Berry, delega a cualquier versión que resida en .yarn/releases.
Si faltan paquetes a pesar de que Yarn informó una instalación exitosa, es posible que se trate de una herramienta que aún no entiende PnP. Algunos editores, analizadores de código o herramientas de compilación asumen que node_modules directorio y fallar cuando no existe. Las soluciones comunes incluyen habilitar los SDK de Yarn para editores, usar herramientas compatibles de la matriz de soporte de Yarn o cambiar temporalmente el enlazador a node-modules vía .yarnrc.yml.
Los conflictos de archivos de bloqueo son inevitables en equipos activos donde múltiples ramas agregan o modifican dependencias en paralelo. Cuando yarn.lock En caso de conflictos durante una fusión, una estrategia eficaz consiste en elegir una rama como línea base, resolver manualmente los conflictos textuales a favor de esa línea base siempre que sea posible y, a continuación, ejecutar yarn install para regenerar un archivo de bloqueo limpio que luego confirmas como la nueva fuente de verdad.
Los problemas relacionados con la caché generalmente se resuelven con una solución sencilla. yarn cache clean seguido de un fresco yarn install. Si Yarn se comporta de forma extraña, los paquetes parecen desactualizados o aparecen errores de resolución extraños, limpiar la caché y reinstalar suele solucionar el problema y devolver el sistema a un estado normal sin necesidad de realizar más investigaciones.
Comprobaciones posteriores a la instalación y ajuste continuo del rendimiento.
Una vez que Yarn esté instalado y ejecutando comandos correctamente, conviene realizar algunas comprobaciones rápidas para asegurarse de que todo esté conectado correctamente para su proyecto. Lo primero y más sencillo es confirmar la versión:
yarn --version
Después de eso, en cualquier proyecto que ya tenga un package.json, ejecutando yarn install La ausencia de errores es un claro indicador de que su entorno, el acceso al registro y la versión de Node son compatibles. Si tus dependencias son pesadas, es posible que quieras controlar el tiempo de instalación; en ejecuciones posteriores, el almacenamiento en caché y la concurrencia de Yarn deberían reducir ese tiempo considerablemente.
Yarn también ofrece comandos como yarn outdated para ver qué paquetes tienen versiones más recientes disponibles y yarn list --depth=0 para imprimir todas las dependencias de nivel superior que están instaladas. Estas herramientas te ayudan a controlar las desviaciones de dependencias y a decidir cuándo programar las actualizaciones.
En cuanto al rendimiento, hay varias opciones que puedes ajustar después de la instalación. Configuración como networkConcurrencyLas carpetas de caché personalizadas o la desactivación de las barras de progreso detalladas en la integración continua pueden reducir segundos o incluso minutos en instalaciones grandes. Por ejemplo, aumentar la concurrencia con:
yarn config set network-concurrency 8
Esto permite a Yarn enviar más solicitudes de red en paralelo, lo que a menudo acelera las descargas en conexiones rápidas.
Por último, para monorepositorios muy grandes o configuraciones de múltiples entornos, combinar Yarn con una infraestructura escalable (como canalizaciones de CI basadas en contenedores o plataformas de compilación en la nube) permite aprovechar al máximo su diseño determinista y optimizado para el almacenamiento en caché. Porque cada instalación está guiada por yarn.lock y PnP o node_modules Los metadatos, las cachés compartidas entre nodos de CI o reutilizadas en diferentes compilaciones pueden reducir drásticamente los tiempos de instalación.
En definitiva, dedicar tiempo a comprender cómo instalar Yarn correctamente, configurarlo para cada proyecto, ajustar la variable PATH y la configuración, y aprovechar sus funciones de almacenamiento en caché y espacio de trabajo, da sus frutos rápidamente. El resultado son instalaciones más rápidas, compilaciones más predecibles, una mejor ergonomía para monorepo y un flujo de trabajo de gestión de dependencias más fácil de reproducir entre compañeros de equipo, sistemas CI/CD y entornos de producción.
