Inicio » [SOLUCIONADO] Error 'npm ERR! code EACCES permission denied' en Linux
Web y Código

[SOLUCIONADO] Error 'npm ERR! code EACCES permission denied' en Linux

El Diagnóstico Rápido

El error npm ERR! code EACCES permission denied (o EACCES: permission denied, access '/usr/local/lib/node_modules') ocurre al intentar instalar paquetes globales con npm install -g <paquete>. Sucede porque el directorio del sistema pertenece al usuario root, impidiendo que tu usuario normal escriba en él.

Solución Rápida (Recomendada): Cambia la ubicación del directorio global de npm a tu carpeta de usuario local:

BASH
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

La Solución Paso a Paso

Método 1: Reconfigurar el directorio predeterminado de NPM (Mejor opción)

Jamás debes instalar paquetes de npm usando sudo, ya que expone tu sistema a riesgos de seguridad y corrompe los permisos de futuros comandos.

  1. 1

    Paso 1

    Crear un directorio dedicado para paquetes globales en tu HOME:

    BASH
    mkdir -p ~/.npm-global
    
  2. 2

    Paso 2

    Configurar NPM para usar la nueva carpeta:

    BASH
    npm config set prefix '~/.npm-global'
    
  3. Anuncio Google AdSense (En medio del artículo) Anuncio de Contenido / In-Article Ad
  4. 3

    Paso 3

    Agregar la nueva ruta a tus variables de entorno PATH: Si usas Bash (~/.bashrc):

    BASH
    echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    

    Si usas Zsh (~/.zshrc):

    BASH
    echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
    source ~/.zshrc
    
  5. 4

    Paso 4

    Probar la instalación global:

    BASH
    npm install -g typescript ts-node
    

Método 2: Utilizar Node Version Manager (NVM)

Usar NVM es la práctica estándar en la industria para desarrollo con Node.js. NVM instala Node.js y npm dentro del espacio del usuario actual, eliminando por completo cualquier problema de permisos.

BASH
# 1. Instalar NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# 2. Recargar tu terminal
source ~/.bashrc

# 3. Instalar la versión LTS de Node.js
nvm install --lts
nvm use --lts

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Evita ejecutar sudo npm install -g bajo cualquier circunstancia.
  • Si por error usaste sudo npm anteriormente y corrompiste los permisos de tu carpeta ~/.npm, restaura el propietario con:
    BASH
    sudo chown -R $USER:$USER ~/.npm