Instalación de Node con PNPM

PNPM: Performant Node Package Manager


Las siglas de pnpm significan performant node package manager, es decir, gestor de paquetes de node de alto rendimiento. Tradicionalmente, npm siempre ha gestionado la instalación de paquetes de una forma particular, mediante la cual gasta demasiado tiempo y espacio en disco.

¿Por qué PNPM en lugar de NPM?

Utilizar pnpm como alternativa a npm es una muy buena opción por muchas razones, ya que puedes gestionar versiones de Node, instalar y gestionar paquetes y dependencias, entre otras varias ventajas.

Pero sin duda, una de las mejores, es que pnpm utiliza una forma alternativa de instalación de paquetes, donde se gestionan mediante un almacén compartido, ahorrando espacio en disco y realizando una instalación de paquetes mucho más rápida:

NPM vs PNPM

Si lo deseas, puedes utilizar npm, pero si utilizas pnpm aprovecharás varias ventajas y funcionalidades de este último que mejorarán tu experiencia como desarrollador.

Instalación de PNPM

Para instalar pnpm, simplemente necesitaremos tener instalado curl en nuestro sistema (en caso contrario, ejecutamos el primer comando de los siguientes) para descargar el script de instalación de pnpm e instalarlo:

$ sudo apt install curl
$ curl -fsSL https://get.pnpm.io/install.sh | sh -

Si en la instalación nos da el error ERR_PNPM_UNKNOWN_SHELL  Could not infer shell type es porque nuestra terminal no tiene establecida la terminal por defecto. Esto se puede solucionar fácilmente, escribiendo el comando export SHELL=/bin/bash.

Finalmente, hacemos un source ~/.bashrc (o simplemente, cerrar y abrir la terminal) para obligar a cargar los cambios. Si todo ha ido bien, deberíamos tener instalada la última versión de pnpm. Lo podemos comprobar con el siguiente comando:

$ pnpm --version

Sin embargo, aún no tenemos Node instalado. Vamos a ello.

Instalación de Node (con PNPM)

Una vez instalado pnpm, lo ideal es instalar Node con pnpm para gestionar sus versiones desde el propio pnpm. Esto se puede hacer de forma muy sencilla mediante los siguientes comandos:

Podemos ver que versiones de Node son las actuales, entrando a la web oficial de NodeJS (en su sección de descargas) donde destacan dos versiones:

  • LTS: La versión estable (recomendada)
  • Current: La versión experimental (últimas novedades)

Esto puede hacerse directamente sin necesidad de entrar a la web, o ninguna comprobación de versiones, ejecutando uno de los dos siguientes comandos (mi recomendación, la lts):

$ pnpm env use --global lts       # instala y activa la última versión LTS (estable)
$ pnpm env use --global latest    # instala y activa la última versión (experimental)

Esto descargará una de las dos versiones y la activará como versión por defecto. Puedes comprobar que todo ha ido bien, simplemente ejecutando los siguientes comandos para comprobar que Node ya está disponible en nuestro sistema:

$ node --version
$ npm --version

Si todo ha ido bien, debería darnos la versión disponible.

Por otro lado, podemos simplemente ejecutar el siguiente comando en una terminal para ver las últimas versiones disponibles:

$ pnpm env list --remote

[...]
22.12.0
22.13.0
22.13.1
22.14.0
23.9.0
23.10.0
23.11.0

Observa que el parámetro --remote es necesario para obtener las versiones disponibles desde la web de Node.

Si ejecutamos el mismo comando anterior, pero omitimos --remote, lo que obtendremos serán las versiones de node instaladas en nuestro sistema:

$ pnpm env list

18.20.3
20.18.0
22.13.0
23.7.0

Cambiar versiones con PNPM

Lo que hemos visto es la versión rápida para instalar Node. Sin embargo, puede que sea posible que queramos ir cambiando de versión de Node según los proyectos en los que estemos trabajando. Para ello, más adelante podemos hacer uso de los siguientes comandos.

Por ejemplo, mediante pnpm env add --global podemos descargarnos versiones concretas de Node. Sin embargo, sólo las descargará y no las activará para utilizar. Si queremos que también se activen, ejecutaremos el comando pnpm env use --global. Ambos comandos, siempre seguidos de la versión a instalar:

$ pnpm env add --global 23.7.0
$ pnpm env use --global 23.7.0

Si en algún momento queremos desinstalar alguna versión de nuestro sistema, simplemente utilizaremos pnpm env remove:

$ pnpm env remove --global 23.7.0

Con esto, deberíamos poder trabajar con node y pnpm en las versiones que necesitemos. A medida que transcurra el tiempo, necesitaremos actualizar pnpm a las nuevas versiones que vayan apareciendo. Para ello, simplemente autoactualizaremos con pnpm:

$ pnpm self-update

Esto actualizará la versión de pnpm a la última disponible.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev