pnpm-lock.yaml 是 pnpm 的锁文件,记录项目中每个依赖的精确解析结果,包括实际安装的版本号、完整性校验哈希(integrity)、依赖关系图以及 patch 信息。该文件是确定性安装的来源:无论何时何地执行 pnpm install,只要 package.json 和 pnpm-lock.yaml 未被修改,安装的依赖树就完全一致。
锁文件中的每个包条目都包含基于 SHA-512 的完整性哈希值。安装时,pnpm 会校验下载内容的哈希是否与锁文件中记录的一致,防止内容被篡改或传输损坏。对于使用 patch 修改过的依赖,锁文件还会额外记录 patch 文件的哈希,确保修改后的包内容同样可验证。
当 pnpm 检测到运行环境为 CI 时,会自动进入冻结锁文件模式(frozen-lockfile),拒绝任何对锁文件的修改。若 pnpm-lock.yaml 与 package.json 中的依赖声明不匹配,安装将直接失败并报错。这一机制杜绝了"本地能跑、CI 挂掉"的锁文件漂移问题,确保构建环境的可复现性。用户也可通过 pnpm install --frozen-lockfile 手动启用该模式。