Instalar pnpm
Descargá e instalá pnpm con el script oficial. Después recargá tu shell para que el binario quede en el PATH.
curl -fsSL https://get.pnpm.io/install.sh | sh -
source ~/.bashrc
~/.bashrc por ~/.zshrc o el archivo de config que corresponda.
Limpiar el repo
Borrá todos los artefactos generados por npm para que pnpm arranque desde cero.
rm -rf node_modules/
rm package-lock.json
.next/, dist/, build/, .cache/), borrala también para evitar artefactos viejos.
Configurar .npmrc
Creá o editá el archivo .npmrc en la raíz del repo:
shamefully-hoist=true
node_modules estricto por defecto. Algunos paquetes asumen el hoisting plano de npm y rompen sin esta flag. Es la solución compatible mientras tu proyecto se adapta.
Instalar dependencias
Una vez limpio el repo y configurado .npmrc, ejecutá:
pnpm install
pnpm va a leer tu package.json, descargar todas las dependencias declaradas y generar un pnpm-lock.yaml nuevo. Ese lockfile reemplaza al package-lock.json que borraste — commiteá el nuevo lockfile al repo.
Equivalencias npm → pnpm
Tus scripts del package.json no cambian. Lo único que cambia es cómo los invocás desde la terminal:
npm installpnpm installnpm install <pkg>pnpm add <pkg>npm install -D <pkg>pnpm add -D <pkg>npm uninstall <pkg>pnpm remove <pkg>npm run <script>pnpm <script>npm cipnpm install --frozen-lockfilenpx <cli>pnpm dlx <cli>Opcionalmente, fijá la versión de pnpm que usa el equipo agregando este campo al package.json:
"packageManager": "pnpm@9.0.0"
Aprobar build scripts
Por seguridad, pnpm bloquea los scripts de postinstall de paquetes terceros. Al instalar, vas a ver una lista de paquetes bloqueados — necesitás aprobar explícitamente los que requieran compilar binarios o generar código.
La forma más simple es ejecutar el comando interactivo:
pnpm approve-builds
O declarar la lista en pnpm-workspace.yaml en la raíz del repo (recomendado para tener el listado versionado):
allowBuilds:
esbuild: true
sharp: true
# <paquete>: true → aprobar postinstall
# <paquete>: false → ignorar postinstall
pnpm install primero — pnpm te va a mostrar exactamente qué paquetes necesitan aprobación según las dependencias que tengas.
Después de configurar, reinstalá:
pnpm install
Build de verificación
Validá que todo compila end-to-end con tu script de build:
pnpm run build
Tu repo ahora corre 100% sobre pnpm. Commiteá pnpm-lock.yaml, .npmrc y pnpm-workspace.yaml y abrí el PR.
Troubleshooting
Si algo no funciona, revisá estos casos antes de pedir ayuda.
Error
Aparece ERR_PNPM_IGNORED_BUILDS
pnpm-workspace.yaml. Revisá el archivo y agregá el paquete con true o false según corresponda. También podés correr pnpm approve-builds para resolverlo interactivamente.
Warning Falla algún paquete por hoisting
.npmrc en la raíz tenga la línea shamefully-hoist=true. Si lo agregaste después de instalar, borrá node_modules/ y volvé a correr pnpm install.
Error Node version error
nvm install 18.17 (o más reciente), después nvm use y volvé a correr pnpm install.
Warning
pnpm no se encuentra después de instalar
source ~/.bashrc (o ~/.zshrc). Verificá con pnpm -v.