Cómo habilitar y usar pnpm en ServBay
pnpm
es una herramienta moderna y eficiente para la gestión de paquetes en Node.js, diseñada para resolver los problemas típicos que presentan los gestores de paquetes tradicionales como npm
y yarn
al manejar dependencias. Gracias a su sistema de archivos direccionado por contenido, así como al uso de hard links y symlinks, pnpm
reduce notablemente el uso de espacio en disco y acelera enormemente la instalación de dependencias. Para quienes desarrollan en Node.js con ServBay, dominar el uso de pnpm
puede aumentar de manera significativa la eficiencia en la gestión de las dependencias del proyecto.
El paquete de Node.js distribuido con ServBay integra corepack
, una herramienta experimental oficial de Node.js, que sirve para gestionar y activar versiones específicas de gestores de paquetes (como npm
, yarn
y pnpm
) para cada proyecto. Normalmente, tras instalar Node.js mediante ServBay, puedes habilitar pnpm
a través de los comandos de corepack
.
Habilitar pnpm
Si notas que el comando pnpm
no está disponible de inmediato, normalmente es porque todavía no se ha habilitado a través de corepack
. Sigue estos pasos para habilitarlo:
Abre la aplicación de Terminal.
Introduce el siguiente comando para habilitar
pnpm
usandocorepack
:bashcorepack enable pnpm
1Si el comando se ejecuta correctamente, lo habitual es que no se muestre ningún mensaje de respuesta. Esto significa que
corepack
ya ha vinculado el comandopnpm
al sistema.Confirma que
pnpm
está habilitado correctamente y verifica su versión:bashpnpm -v
1Este comando debería mostrar el número de versión actual de
pnpm
, por ejemplo:bash9.1.0
1Si la terminal muestra el número de versión, quiere decir que
pnpm
ya está listo para usarse.
Mensaje de descarga de corepack
Si al ejecutar el comando pnpm
ves un mensaje como el siguiente, significa que corepack
está descargando o actualizando la versión de pnpm
requerida. Este es el funcionamiento estándar de corepack
, cuyo objetivo es asegurarse de que uses la versión de pnpm
adecuada o la más reciente necesaria para tu proyecto.
bash
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]
1
2
3
2
3
Escribe Y
y pulsa Enter para permitir que corepack
descargue y continúe con la ejecución del comando pnpm
. Una vez finalizada la descarga, el comando funcionará como es habitual y mostrará el número de versión (o cualquier otro resultado esperado del comando pnpm
que hayas ejecutado).
Ventajas clave y ejemplos de uso de pnpm
El objetivo principal de pnpm
es gestionar dependencias de forma eficiente. Todos los paquetes se almacenan en un repositorio global direccionado por contenido, por lo que cada versión de un paquete se guarda solo una vez. Cuando un proyecto necesita una dependencia, pnpm
crea un hard link desde el almacenamiento global, mientras que la carpeta node_modules
del proyecto utiliza symlinks para formar una estructura plana. A diferencia de los problemas de dependencias fantasma que suelen tener otros gestores como npm
, pnpm
mantiene una estructura estricta donde únicamente los módulos declarados como dependencias directas pueden ser referenciados.
Este enfoque ofrece varias ventajas destacadas:
- Ahorro de espacio en disco: Distintos proyectos pueden compartir la misma versión de una dependencia, evitando duplicados y desperdicio de almacenamiento.
- Instalación ultrarrápida: En la mayoría de los casos, las dependencias ya existen en el repositorio global, por lo que solo se crean enlaces, sin necesidad de copiar archivos o descargar nuevamente.
- Estructura de dependencias estricta: Se evita el problema de las dependencias fantasma y la relación entre dependencias del proyecto es más clara y controlable.
A continuación te mostramos algunos ejemplos de comandos habituales con pnpm
en el entorno de ServBay.
Supón que tu proyecto se encuentra en un subdirectorio dentro del directorio raíz de sitios web de ServBay, por ejemplo /Applications/ServBay/www/my-servbay-app
.
Instalar dependencias del proyecto
Una vez dentro del directorio del proyecto, usa el comando pnpm install
para instalar todas las dependencias definidas en el archivo package.json
:
bash
cd /Applications/ServBay/www/my-servbay-app
pnpm install
1
2
2
pnpm
revisará el almacenamiento global, descargará aquellos paquetes que falten y creará los enlaces necesarios en la carpeta node_modules
del proyecto.
Añadir un nuevo paquete de dependencias
Para añadir una nueva dependencia, por ejemplo lodash
, ejecuta:
bash
pnpm add lodash
1
Esto descargará lodash
(si aún no existe en el repositorio global), creará el enlace correspondiente y actualizará automáticamente los archivos package.json
y pnpm-lock.yaml
del proyecto.
Eliminar una dependencia
Para eliminar una dependencia que ya no se utiliza, como lodash
:
bash
pnpm remove lodash
1
Esto eliminará lodash
de las dependencias del proyecto y actualizará los archivos package.json
y pnpm-lock.yaml
.
Ejecutar scripts
pnpm
también permite ejecutar los scripts definidos en el campo scripts
de tu package.json
:
bash
pnpm run dev
# O también en forma abreviada
pnpm dev
1
2
3
2
3
Ejecutar comandos de paquetes (pnpx)
Al igual que npx
, pnpm
incluye pnpx
(o simplemente puedes usar pnpm exec
) para ejecutar binarios instalados localmente en el directorio node_modules/.bin
del proyecto, sin necesidad de instalarlos globalmente:
bash
pnpm exec webpack --version
# O abreviado
pnpx webpack --version
1
2
3
2
3
Resumen
Usando el comando corepack enable pnpm
puedes habilitar de forma sencilla el gestor de paquetes pnpm
en el entorno Node.js proporcionado por ServBay. Gracias a la eficiente gestión de dependencias que ofrece pnpm
, disfrutarás de instalaciones más rápidas, mayor productividad y un importante ahorro de espacio en disco para tus proyectos Node.js. Si buscas una experiencia de desarrollo optimizada en ServBay, pnpm
es una herramienta altamente recomendada.