Si alguna vez intentaste crear un proyecto con npm y te encontraste con errores como EACCES o EEXIST en la carpeta .npm, no estás solo. Es un problema común en macOS y Linux cuando npm mezcla archivos con distintos dueños o permisos, normalmente por haber usado sudo en algún momento.
Este post intenta documenta el problema, por qué ocurre y cómo resolverlo de forma limpia, estable y sin depender de nvm.
El problema
Todo comenzó al ejecutar un comando típico para iniciar un proyecto:
npm create hono@latestEn lugar de crear el proyecto, npm devolvía errores parecidos a estos:
- EACCES: permission denied
- EEXIST: file exists
- rutas dentro de ~/.npm/_cacache
Pero.. ¿que significa?
- EACCES indica que tu usuario actual no tiene permisos sobre algunos archivos.
- EEXIST en este contexto suele aparecer cuando npm intenta mover o escribir contenido en caché, pero se encuentra con archivos existentes que además pueden estar protegidos por permisos incorrectos.
- El punto clave: la caché de npm en ~/.npm contenía archivos creados por root o por otro contexto de ejecución.
La solución a tus problemas
La solución tiene dos partes: evitar el conflicto actual y prevenir que vuelva.
Mover npm global y caché a carpetas de usuario
Con esto evitas escribir en zonas problemáticas:
- Crear carpeta para paquetes globales:
mkdir -p $HOME/.npm-global - Configurar prefijo global:
npm config set prefix $HOME/.npm-global - Configurar nueva caché de npm:
mkdir -p $HOME/.npm-global/cache
npm config set cache $HOME/.npm-global/cache - Asegurar PATH en zsh:
echo ‘export PATH=»$HOME/.npm-global/bin:$PATH»‘ >> $HOME/.zshrc
source $HOME/.zshrc
2) Verificar que todo quedó bien
Ejecuta pruebas simples:
- npm cache verify
- npm i -g npm-check-updates
- ncu –version
- npm view create-hono version
Si estas pruebas pasan, el entorno ya está funcionando correctamente sin tocar nvm.
3) Limpieza opcional del origen del problema
Si quieres corregir la carpeta antigua de caché para dejar el sistema prolijo:
sudo -n chown -R "$(id -u)":"$(id -g)" "$HOME/.npm"Aunque no siempre es obligatorio sí es recomendable como limpieza final.
Como le hacemos para que no vuelva a pasar
- Evita usar sudo con npm install -g.
- Mantén una sola estrategia de instalación de Node/npm.
- Usa rutas de usuario para globales y caché cuando no trabajes con nvm.
- Si aparece un error raro de caché, revisa primero permisos antes de reinstalar todo.

