PureTools

npm vs yarn vs pnpm: ¿Cuál Gestor de Paquetes en 2026?

PureTools Team· 7 min de lectura
npm vs yarn vs pnpm: ¿Cuál Gestor de Paquetes en 2026?

npm vs yarn vs pnpm: La Comparación Honesta

Los tres instalan paquetes del registro npm. Los tres usan package.json. Las diferencias están en velocidad, uso de disco y cómo manejan la carpeta node_modules.

Comparación Rápida

FeaturenpmYarn (v4)pnpm
Velocidad (cold install)Más lentoRápidoMás rápido
Uso de discoDuplica paquetesPlug'n'Play (sin node_modules)Store direccionable por contenido (compartido)
MonorepoWorkspacesWorkspaces (mejor)Workspaces (el mejor)
RigidezHoistea todoEstricto por defecto (PnP)Estricto (sin phantom deps)
Viene con Node.jsVía CorepackInstalación separada
Lock filepackage-lock.jsonyarn.lockpnpm-lock.yaml

Comandos de Instalación

# Instalar todas las dependencias
npm install          yarn install         pnpm install

# Agregar un paquete
npm install express  yarn add express     pnpm add express

# Agregar dev dependency
npm install -D jest  yarn add -D jest     pnpm add -D jest

# Eliminar un paquete
npm uninstall lodash yarn remove lodash   pnpm remove lodash

# Ejecutar un script
npm run dev          yarn dev             pnpm dev

# Ejecutar un binario
npx create-next-app  yarn dlx create-next-app  pnpm dlx create-next-app

# Actualizar paquetes
npm update           yarn up              pnpm update

Por Qué pnpm Es Rápido

pnpm usa un store direccionable por contenido. Cuando instalas lodash@4.17.21 en el proyecto A, se descarga una vez a un store global. El proyecto B que necesita la misma versión recibe un hard link — sin duplicación:

  • Installs más rápidos: Paquetes ya en el store no se descargan de nuevo
  • Menos espacio en disco: 100 proyectos usando React no significan 100 copias
  • node_modules estricto: Paquetes solo pueden acceder a sus dependencias declaradas

Por Qué Yarn PnP (Plug'n'Play)

Yarn puede eliminar node_modules completamente. En vez, crea un archivo .pnp.cjs que mapea imports a archivos zip en .yarn/cache/:

  • Zero installs: Commitea el cache en git, CI no necesita instalar
  • Installs instantáneos: Sin operaciones de file system
  • Salvedad: Algunas herramientas no soportan PnP y necesitan plugins de compatibilidad

Phantom Dependencies

npm y yarn classic "hoistean" dependencias, permitiendo que tu código importe paquetes que no declaraste en package.json.

// Nunca instalaste 'glob' — es dep de otro paquete
import glob from 'glob'; // Funciona con npm (hoisted)
// Falla con pnpm (modo estricto) — te fuerza a declarar correctamente

Cuál Elegir

  • npm: Elección por defecto, funciona en todas partes, suficiente para la mayoría
  • pnpm: Mejor para monorepos, CI con disco limitado, equipos que quieren deps estrictas
  • yarn: Si quieres PnP/zero-installs o tu equipo ya lo usa

¿Honestamente? Elige cualquiera y mantenlo. Las diferencias de velocidad son segundos, no minutos. Consistencia en el equipo importa más que benchmarks.

Gestiona tus paquetes: Formateador JSON — formatea y valida tus archivos package.json.