¿Alguna vez te has encontrado con esta situación? Para ahorrar espacio en la computadora, configuras el store de pnpm en un disco externo, pero un día no trajiste el disco, o quisiste cambiar la ubicación, ¿y pnpm comenzó a arrojar errores diciendo que no podía encontrar el directorio? ¿Incluso volver a conectar el disco se siente extraño?
Esto en realidad está relacionado con el principio de funcionamiento único de pnpm. ¡Hoy hablemos sobre el mecanismo “Store” de pnpm y cómo rescatarlo cuando “pierde la conexión”!
¿Cómo ahorra espacio pnpm exactamente?
Antes de comenzar a solucionar, repasemos rápidamente la magia de ahorro de espacio de pnpm.
A diferencia de npm, que copia un conjunto completo de paquetes en node_modules de cada proyecto, pnpm utiliza Content-addressable store (Almacén direccionable por contenido) y Hard Links (Enlaces duros).
La forma en que funciona pnpm es que todos los archivos de paquetes en realidad solo existen en un “gran almacén” en tu computadora, y el directorio de tu proyecto solo se vincula a este almacén. Esto no solo ahorra espacio en el disco duro, sino que también hace que la instalación sea sorprendentemente rápida.
| Ítem | pnpm | npm |
|---|---|---|
| Método de Almacenamiento | Global Store + Hard Links | Copia independiente por proyecto |
| Uso de Espacio | Muy bajo (solo guarda una copia por versión) | Alto (copias duplicadas) |
| Velocidad de Instalación | Rápido (solo crea enlaces) | Lento (necesita extraer y escribir) |
¿Por qué el disco externo causa errores en pnpm?
Cuando configuras pnpm store en un disco externo para ahorrar espacio en el SSD local, aparecen posibles trampas:
| Situación | Descripción |
|---|---|
| Ruta Inválida | Cuando el disco no está conectado, pnpm no puede encontrar el store-dir configurado originalmente, y la instalación reportará un error y saldrá directamente. |
| Fallo de Hard Link | Debido a que los Enlaces duros no pueden cruzar particiones, si tu proyecto está en el Disco A y el store está en el Disco B, pnpm se ve obligado a usar el copiado, lo que pierde la ventaja original e incluso puede causar errores de ejecución debido a rutas de caché desordenadas. |
Al encontrarnos con esta situación, necesitamos “calibrar” manualmente.
Solución 1: Calibrar, Reconfigurar la Ruta del Store
Si decides cambiar la ubicación del store, la forma más directa es decirle a pnpm dónde está el nuevo store. Puedes usar el siguiente comando:
pnpm config set store-dir <tu_nueva_ruta_de_directorio>
Por ejemplo, configurando pnpm store en ~/.pnpm-store bajo el directorio home del usuario:
pnpm config set store-dir ~/.pnpm-store
Si no estás seguro de dónde está configurado el store actual, puedes consultarlo primero:
pnpm store path
Después de completar la configuración, pnpm sabrá de dónde obtener los paquetes a partir de ahora.
Solución 2: Empezar de Nuevo, Reconstruir Enlaces
A veces, después de cambiar la ruta, el proyecto todavía tiene algunos errores residuales antiguos. En este momento, “empezar de nuevo” suele ser el remedio más efectivo:
| Paso | Descripción |
|---|---|
| 1 | Elimina la carpeta node_modules en el proyecto. |
| 2 | Elimina pnpm-lock.yaml (si es un error extraño causado por rutas, se recomienda regenerar el archivo de bloqueo también). |
| 3 | Ejecuta pnpm install para reconstruir los enlaces. |
Esto obliga a pnpm a extraer los enlaces correctos del store a tu proyecto basándose en tu última configuración.
¿Cómo asignar para que sea más fluido?
Si cambias a menudo entre diferentes entornos, o te preocupa la inestabilidad del disco externo, la configuración ideal es: Mantén pnpm store en el SSD local, y el código del proyecto puede estar en el disco externo.
¿Por qué? Porque el store generalmente no cambia con demasiada frecuencia, y aunque tiene volumen, la suma total distribuida entre los proyectos es en realidad mucho menor que npm. Mantener el almacén en una ruta local estable (por ejemplo, el predeterminado de macOS ~/Library/pnpm/store) te permite inicializar nuevos proyectos sin problemas en otros lugares, incluso sin el disco externo.
¡Este concepto de desarrollo Stateless (Sin estado) hace que tu entorno de desarrollo sea más flexible!
Conclusión: Mantener el Store Estable Ahorra Problemas
La clave para administrar pnpm store radica en la palabra “estabilidad”. Si encuentras problemas de ruta, puedes hacer esto:
| Paso | Descripción |
|---|---|
| 1 | Primero verifica y cambia la configuración de store-dir. |
| 2 | Limpia paquetes antiguos: pnpm store prune (esto te ayuda a borrar archivos de paquetes que nadie está usando, adelgazando el disco duro) |
| 3 | Reinstala los paquetes pnpm install |
¡Espero que este artículo ayude a todos a salir del pozo de la ruta de pnpm y disfrutar de la diversión del desarrollo de alta velocidad!