pnpm vs npm: qué cambia de verdad

pnpm vs npm

pnpm vs npm: almacenamiento, lockfiles, workspaces y comandos | We.Inc

Cómo guardan los paquetes pnpm y npm, cómo fijan versiones y gestionan monorepos, un traductor con buscador de comandos de npm a pnpm y los pasos exactos para migrar un proyecto con seguridad.

npm copia cada paquete en el node_modules de cada proyecto y los eleva todos a un nivel plano. pnpm mantiene en disco un único almacén direccionable por contenido, crea hard links desde él y solo pone tus dependencias directas en la raíz de node_modules. Eso ahorra espacio en disco e impide que el código importe paquetes que nunca declaró. La mayoría de los comandos tienen equivalencia directa.

Diferencias clave

Las dos herramientas leen el mismo package.json e instalan desde el mismo registro, así que la elección depende de la estructura, la velocidad de las instalaciones repetidas, las herramientas para monorepos y el nivel de rigor. Abajo verás cómo guarda los paquetes cada una, un traductor para los comandos que ya conoces y los pasos para pasar un proyecto existente de npm a pnpm.

Preguntas frecuentes

¿Es pnpm más rápido que npm?

pnpm a menudo reutiliza archivos que ya están en su almacén, lo que ayuda en instalaciones repetidas en la misma máquina. La velocidad depende del estado de la caché, la red y el tamaño del proyecto, así que mide los dos en tu propio proyecto en lugar de fiarte de un benchmark publicado.

¿Puedo usar pnpm en un proyecto que tiene package-lock.json?

Sí. Ejecuta pnpm import para generar un pnpm-lock.yaml a partir de package-lock.json, npm-shrinkwrap.json o yarn.lock, luego borra el lockfile antiguo y node_modules y ejecuta pnpm install.

¿Por qué mi app no encuentra un módulo después de cambiar a pnpm?

Tu código, o una dependencia, importa un paquete que no figura en su propio package.json. La estructura plana de npm ocultaba ese error. Añade el paquete que falta como dependencia de lo que lo importa.

¿Necesita pnpm tener Node.js instalado?

La documentación de instalación de pnpm describe pnpm 12 como un ejecutable nativo que no necesita Node.js para funcionar. Los scripts de tu proyecto, por supuesto, siguen necesitando Node.js.

¿Cuál debería usar alguien que empieza?

npm, porque viene con Node.js y casi todos los tutoriales lo usan. Pasa a pnpm cuando tengas un monorepo, muchos proyectos en una misma máquina, o quieras la estructura de node_modules más estricta.

Cómo guarda los paquetes cada herramienta

Workspaces y monorepos

Pasar un proyecto de npm a pnpm

Pasos de migración

pnpm import lee el lockfile de npm para que conserves las versiones que ya probaste. Ejecuta tus tests antes de hacer commit.

Cada carpeta que coincida aquí se convierte en un paquete del workspace. Pon el archivo en la raíz del repositorio.

Depender de un paquete local

workspace:* siempre se resuelve a la copia local de ui en lugar de a una versión del registro.

Traductor de comandos de npm a pnpm

Escribe un comando de npm

npm install -D vite

Equivalente en pnpm

No hay equivalencia directa. La mayoría de los demás comandos de npm tienen el mismo nombre en pnpm.

Comandos de npm y sus equivalentes en pnpm

Copiar

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio