pnpm-lock.yaml (y su equivalente en npm, package-lock.json)
Es el archivo de bloqueo (lockfile) que genera pnpm de forma automática cada vez que instalas, actualizas o eliminas paquetes.
Mientras que package.json guarda una lista general con rangos de versiones (ej: "astro": "^4.0.0"), el pnpm-lock.yaml guarda la foto exacta de todo el árbol de dependencias: las versiones precisas de cada librería, de sus sublibrerías (dependencias transitivas) y sus hashes de seguridad (sumas de verificación).
Nunca se debe escribir ni modificar este archivo a mano. pnpm se encarga de crearlo y actualizarlo automáticamente cuando se ejecutan comandos como pnpm install, pnpm add [paquete] o pnpm update.
El archivo pnpm-lock.yaml está conformado al menos con unas 5000 líneas de código.
Beneficios de tener un lockfile
- Evita errores de compilación o ejecución que puedan surgir por diferencias en las versiones de librerías.
- Como pnpm ya sabe la estructura exacta de carpetas e integridad de cada archivo, no pierde tiempo resolviendo versiones en internet; simplemente descarga o enlaza los paquetes directamente desde su caché global.
- Cada paquete tiene grabado su hash criptográfico. Si alguien altera maliciosamente el contenido de un paquete en el registro global de npm,
pnpmlo detectará y detendrá la instalación.
¿Dónde se ubica?
En la raíz del proyecto.
¿Se sube a Git y al Hosting?
A Git / GitHub: SÍ. SIEMPRE
Es fundamental que los compañeros de un equipo descarguen la misma estructura exacta de dependencias.
Al Hosting: SÍ, SIEMPRE
Plataformas como Vercel, Netlify o Cloudflare Pages detectan la presencia de pnpm-lock.yaml. Al encontrarlo, saben automáticamente que deben usar pnpm en lugar de npm para instalar y compilar el proyecto en la nube.