PNPM

PNPM es un gestor de paquetes o dependencias para Node JS. Es rápido, eficiente y soporta monorepos.

pnpm

El mundo de JavaScript está en constante evolución, y aunque ciertamente existen varias herramientas para un mismo propósito, la competencia entre ellas hace que algunas sean mejores que otras en determinados entornos o ofrezcan características que las demás no poseen. PNPM es un claro ejemplo.

PNPM (Performant Node Package Manager) es un gestor de paquetes o dependencias para Node.js, un entorno de ejecución para aplicaciones JavaScript, creado por Zoltan Kochan en 2016. Uno de los principales motivos de su creación fue optimizar el uso del espacio en disco que NPM consume al instalar dependencias, logrando ahorrar gigabytes de almacenamiento.

Ventajas de PNPM

La principal diferencia con NPM es cómo guarda las dependencias, guardando sólo una copia por cada paquete independientemente de en cuantos proyectos se use en nuestro sistema.

Además, PNPM es mucho más rápido que NPM. Veamos una comparativa con NPM para instalar dependencias o actualizarlas de distintas formas (benchmark completo):

accióncachelockfilenode_modulesnpmpnpm
instalar29.3s8s
instalar1.4s371ms
instalar7.9s2.4s
instalar11.9s5.5s
instalar10.6s5s
instalar1.6s2.1s
instalar1.3s375ms
instalar1.6s5s
actualizarn/dn/dn/d6.2s3.6s

Desventajas de PNPM

La principal desventaja es que no es una herramienta tan extendida como NPM. Puede haber problemas en sistemas de integración contínua que no soporten la herramienta. Además NPM viene instalada por defecto con node mientras que PNPM requiere ser instalada explícitamente.

Comandos PNPM

Cómo instalar PNPM

Existen varias formas para instalar PNPM, pero la más sencilla es si ya tienes instalado NODE en tu sistema. En este caso sólo es necesario ejecutar el siguiente comando que instalará PNPM de forma global:

Terminal
npm install -g pnpm

Iniciar un nuevo proyecto

Para iniciar un proyecto nuevo PNPM puedes ejecutar

Terminal
pnpm init

Instalar un paquete

Para instalar un paquete como dependencia

Terminal
pnpm add <pkg>

para instalarla como una dependencia DEV puedes pasarle la opción -D

Terminal
pnpm add -D <pkg>

Instalar todas las dependencias

Si deseamos instalar todas las dependencias especificadas en el archivo package.json podemos ejecutar

Terminal
pnpm install

o

Terminal
pnpm i

Ejecutar un script definido en package.json

Si queremos ejecutar un script definido en el apartado scripts de nuestro archivo package.json:

...
"scripts": {
"build": "astro build",
}
...
Terminal
pnpm build

Actualizar dependencias

Para actualizar a las últimas versiones de los paquetes según las versiones definidas en el package.json

Terminal
pnpm up

Si deseamos instalar las últimas versiones ignorando las versiones definidas en el package.json

Terminal
pnpm up --latest

Eliminar dependencias

Podemos eliminar una dependencia de nuestro proyecto usando

Terminal
pnpm rm astro

O si está instalada de forma global

Terminal
pnpm rm -g express

Resumen

Hemos aprendido qué es PNPM, como instalarlo y los comandos básicos para usarlo y hemos visto una comparativa de rendimiento con NPM. No olvides visitar la documentación oficial de PNPM para conocer más detalles de este gestor de paquetes.