Solución: Error EACCES permission denied en npm install
npm no puede instalar paquetes por permisos insuficientes en Mac o Linux. Solución correcta sin usar sudo npm install.
¿Por qué ocurre?
npm intenta escribir en un directorio del sistema (normalmente /usr/local/lib/node_modules) que pertenece a root. Suele ocurrir cuando se instaló Node.js directamente con el instalador oficial o con apt/brew de forma global, en lugar de usar un gestor de versiones como nvm.
Solución paso a paso
Solución recomendada — usar nvm (evita el problema de raíz):
# Instala nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash# Recarga el shell
source ~/.bashrc # o ~/.zshrc si usas zsh
# Instala Node.js con nvm
nvm install --lts
nvm use --lts
# Ahora npm install funciona sin sudo
npm install -g nombre-paquete
Solución alternativa — cambiar el directorio de npm globales:
# Crea un directorio para paquetes globales en tu home
mkdir -p ~/.npm-global# Configura npm para usarlo
npm config set prefix '~/.npm-global'
# Añade al PATH (en ~/.bashrc o ~/.zshrc):
export PATH=~/.npm-global/bin:$PATH
# Recarga el shell
source ~/.bashrc
# Ahora instala sin sudo
npm install -g nombre-paquete
Si necesitas solución urgente (no recomendado para producción):
# Cambia el propietario del directorio de npm a tu usuario
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) /usr/local/lib/node_modules
NUNCA hagas esto:
# ❌ Instala con sudo — crea más problemas de permisos
sudo npm install -g nombre-paquete
Cómo evitarlo en el futuro
Instala Node.js con nvm en lugar del instalador oficial. nvm instala Node en tu directorio home (~/.nvm) donde siempre tienes permisos. Nunca uses sudo con npm — indica que la instalación base tiene permisos incorrectos y el parche empeora el problema.
¿Quieres que una IA te ayude? Genera el prompt perfecto para tu error:
Generador de Prompts