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, pnpm lo 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.