El proyecto pnpm ha publicado la versión 12 de su gestor de paquetes, reescrita por completo en Rust. Los comandos y ajustes se mantienen compatibles en general, aunque hay cambios en los detalles. Una novedad destacable: pnpm 12 puede trabajar con gestores de paquetes ajenos como npm y Yarn.

terminal
git config --global url."git@github.com:".insteadOf https://github.com/

El proyecto Turborepo de Vercel probó la versión en Rust bajo Linux y midió mejoras de velocidad del 64 al 90 % en las instalaciones frente a pnpm 10.28. La herramienta Corepack de Node.js también arranca un 74 % más rápido con la caché llena, aunque un 11 % más lento con la caché vacía. Los responsables de las pruebas advierten de que otros sistemas operativos pueden dar resultados distintos por sus métodos de enlazado.

El ajuste packageImportMethod: auto aporta otra mejora: en Linux resuelve ahora los enlaces duros con prioridad, lo que reduce a la mitad los tiempos de instalación en el sistema de archivos btrfs. En ext4 no hay ventaja.

Hay que tener en cuenta algunos cambios que rompen compatibilidad. GitHub, GitLab y BitBucket ya no son accesibles por SSH; pnpm 12 solo permite HTTP. Los repositorios privados deben configurarse mediante la reescritura de URL de git. Los ajustes erróneos en pnpm-workspace.yaml ya no se ignoran, sino que devuelven el error ERR_PNPM_UNRECOGNIZED_WORKSPACE_SETTINGS. La opción pnpm install --resolution-only ha sido eliminada.

Otra novedad importante: pnpm 12 integra paquetes en los formatos npm, Yarn Classic, Yarn Berry, Yarn 6 y Bun. Nombrarlos en un comando registra el gestor correspondiente en lugar de instalarlo: pnpm add yarn ya no instala el paquete Yarn, sino que registra el gestor Yarn como packageManager. Además, se pueden fijar runtimes locales de Node, Deno o Bun por proyecto con devEngines.runtime, manteniendo la versión global fuera del proyecto. Los detalles están en las entradas de blog de las versiones 12.0 y 12.1, esta última con cambios menores.