Contexto

Al usar npm o Yarn, si tiene 100 proyectos que usan una dependencia, tendrá 100 copias de esa dependencia guardadas en el disco. Con pnpm, la dependencia se almacenará en un almacén direccionable por contenido, por lo que:

  1. Si depende de diferentes versiones de la dependencia, solo los archivos que difieren se agregan a la tienda. Por ejemplo, si tiene 100 archivos y una nueva versión tiene un cambio en solo uno de esos archivos, pnpm updatesolo agregará 1 archivo nuevo a la store, en lugar de clonar toda la dependencia solo para el cambio singular.
  2. Todos los archivos se guardan en un solo lugar en el disco. Cuando se instalan los paquetes, sus archivos están vinculados desde ese único lugar, sin consumir espacio adicional en el disco. Esto le permite compartir dependencias de la misma versión entre proyectos.

Como resultado, ahorra mucho espacio en su disco proporcional a la cantidad de proyectos y dependencias, ¡y tiene instalaciones mucho más rápidas!

Al instalar dependencias con npm o Yarn Classic, todos los paquetes se elevan a la raíz del directorio de módulos. Como resultado, el código fuente tiene acceso a dependencias que no se agregan como dependencias al proyecto.

De forma predeterminada, pnpm usa enlaces simbólicos para agregar solo las dependencias directas del proyecto en la raíz del directorio de módulos. Si desea obtener más detalles sobre la estructura única denode_modules que crea pnpm y por qué funciona bien con el ecosistema Node.js, lea:

Instalación

Puede hacerlo a tráves de brew o curl si estás en mac

Si tiene instalado el administrador de paquetes brew, puede instalar pnpm usando el siguiente comando:

Si ocupas curl:

Nota: si no has instalado homebrew o tienes Mac M1 puedes leer mi articulo aquí para instalar distintas dependencias y que tengas una buena configuración (actualizado 2022) 😄.

Uso

Si has trabajado con npm veras esta tabla de conversión que es muy similar a como trabajas actualmente:

configurando

pnpm usa los formatos de configuración de npm . Por lo tanto, debe establecer la configuración de la misma manera que lo haría para npm. Por ejemplo

Ejemplo instalar React con pnpm

Como pnpm ocupa los mismos comandos de npm podría hacer lo siguiente:

o en el caso que quiera eliminar la dependencia podría realizar

pnpmes especialmente apreciado en aquellas empresas donde existe la necesidad de mantener un gran número de proyectos con las mismas dependencias.

pnpmles proporciona, además de los npmcomandos habituales, algunas utilidades, incluida [pnpm recursive](https://pnpm.js.org/docs/en/pnpm-recursive.html), que se utiliza para ejecutar el mismo comando en todos los proyectos de una carpeta. Por ejemplo, puede inicializar 100 proyectos almacenados en la carpeta actual ejecutando pnpm recursive install. Práctico.

Create React APP PNPM

Primero instale la dependencia para pnpm

Luego de eso ejecute el comando con el nombre de su app:

Como saber cuanto espacio tiene mis carpetas node_modules actualmente

Generalmente todos los proyectos en mi caso los instalo debajo de mi usuario como muestro a continuación:

Con este comando puedes ver el espacio total que ocupan las carpetas node_modules:

en mi caso 5.3 GB

Ten cuidado con eliminar todas las carpetas node_modules, pero en el caso que quieras realizar esta acción y limpiar tu computadora te dejo el comando.

Nota: eliminando la carpeta node_modules hará que tengas que volver a hacer un pnpminstall en los proyectos en los que quieras trabajar de nuevo.

Esta fue una simple introducción de pnpm. Espero sea de tu interes, 😃😃😃