Es fin de año y fue un buen año para pnpm, así que veamos cómo nos fue.
Uso
Descargar estadísticas
Mi objetivo este año era vencer a Bower por en número de descargas. Pudimos lograr este objetivo en Noviembre:
pnpm se descargó unas 3 veces más en 2021 que en 2020:
¡Estas estadísticas ni siquiera miden todas las diferentes formas en que se puede instalar pnpm! Solo miden las descargas depnpm npm package. Este año también agregamos versiones binarias compiladas de pnpm, que se entregan de manera diferente.
Visitas a la documentación
Nosotros recogemos estadísticas no personalizadas de nuestra documentación utilizando Google Analytics. En 2021, a veces teníamos mas de 2,000 visitantes únicos a la semana.
La mayoría de nuestros usuarios son de los Estados Unidos y China.
Estrellas en GitHub
Nuestro repositorio principal de GitHub recibió +5.000 estrellas este año.
Nuevos usuarios
Nuestro gran nuevo usuario este año es Bytedance (la compañía detrás de TikTok).
Además, muchos grandes proyectos de código abierto comenzaron a usar pnpm. Algunos cambiaron a pnpm debido a su gran soporte de monorepos:
Algunos cambiaron porque les gusta lo eficiente, rápido y hermoso que es pnpm:
Características destacadas
Nuevo formato de archivo de bloqueo (desde v6.0.0)
Uno de los primeros y más importantes cambios de este año fue el nuevo formato pnpm-lock.yaml
. Este fue un cambio importante, por lo que tuvimos que lanzar v6. Pero fue un éxito. El antiguo archivo de bloqueo causaba conflictos de Git con frecuencia. Desde que se introdujo el nuevo formato, no recibimos ninguna queja sobre conflictos de Git.
Gestión de versiones de Node.js (desde v6.12.0)
Enviamos un nuevo comando (pnpm env
) que permite gestionar las versiones de Node.js. Por lo tanto, puede usar pnpm en lugar de los administradores de versiones de Node.js como nvm o Volta.
Además, pnpm se envía como un ejecutable independiente, por lo que puede ejecutarlo incluso sin Node.js preinstalado en el sistema.
Inyectando dependencias locales (desde v6.20.0)
Puede "inyectar" una dependencia local. Por defecto, las dependencias locales están enlazadas simbólicamente a node_modules
, pero con esta nueva característica se puede dar instrucciones a pnpm para vincular duramente los archivos del paquete.
Informe mejorado de problemas de dependencia entre pares (desde v6.24.0)
Los problemas de dependencia entre pares solían imprimirse como texto sin formato y era difícil entenderlos. Ahora están todos agrupados e impresos en una bonita estructura jerárquica.
La competencia
Yarn
Yarn agregó un enlazador pnpm en v3.1. Entonces, Yarn puede crear una estructura de directorio de módulos de node similar a la que crea pnpm.
Además, el equipo de Yarn planea implementar un almacenamiento direccionable por contenido para ser más eficiente en el uso del espacio en disco.
npm
El equipo de npm decidió adoptar también la estructura de directorios de módulos de node enlazados que utiliza pnpm (relacionada con RFC).
Otros
Bun escrito en Zig y Volt escrito en Rust afirman ser más rápidos que npm/Yarn/pnpm. Todavía no he comparado estos nuevos gestores de paquetes.
Planes futuros
Más rápido, mejor, el mejor.