Inicio » Cómo solucionar el error ENOENT 'no such file or directory' en npm e npx
Web y Código

Cómo solucionar el error ENOENT 'no such file or directory' en npm e npx

✨ Respuesta Rápida

El mensaje npm ERR! code ENOENT (Error NO ENtity) indica que el gestor de paquetes de Node.js intentó abrir o modificar un archivo o directorio que no existe en la ruta especificada. Ocurre comúnmente durante npm install, npx o la ejecución de scripts al faltar el archivo package.json, existir referencias obsoletas en package-lock.json o haber una caché corrupta.

El Diagnóstico Rápido

Causa
npm ERR! code ENOENT syscall open al ejecutar comandos de npm: Falta package.json en el directorio actual, versión desincronizada de package-lock.json o datos corruptos en la caché local
Solución
Verificar la ubicación actual con pwd, limpiar la caché de npm con --force y regenerar los módulos y el lockfile

La Solución Paso a Paso

  1. 1

    Paso 1: Verificar el directorio de trabajo actual

    Uno de los desencadenantes más comunes es ejecutar npm install fuera de la carpeta raíz del proyecto donde reside package.json. Verifica tu ruta actual:

    BASH
    # Comprobar la carpeta actual en Linux/macOS
    pwd
    
    # Listar archivos para verificar la presencia de package.json
    ls -la package.json
    

    Si no existe un archivo package.json en el directorio, muévete al directorio correcto o inicializa un nuevo proyecto Node.js:

    BASH
    # Crear un package.json básico si estás iniciando un nuevo proyecto
    npm init -y
    
  2. 2

    Paso 2: Limpiar la caché de npm

    Los datos persistentes o fragmentados dentro de la caché global de npm pueden hacer que busque archivos en ubicaciones temporales inexistentes. Ejecuta el comando de limpieza de caché:

    BASH
    # Forzar la limpieza de la caché de npm
    npm cache clean --force
    
  3. 3

    Paso 3: Eliminar node_modules y regenerar package-lock.json

    Si el archivo package-lock.json contiene rutas relativas rotas o referencias a versiones antiguas de binarios instalados en node_modules, lo ideal es realizar una reinstalación limpia:

    BASH
    # En Linux / macOS: eliminar la carpeta de módulos y el archivo lockfile
    rm -rf node_modules package-lock.json
    
    # En Windows (PowerShell):
    # Remove-Item -Recurse -Force node_modules, package-lock.json
    
    # Reinstalar todas las dependencias
    npm install
    
  4. 4

    Paso 4: Corregir permisos y carpetas globales de npm (para npx)

    Si el error ENOENT se produce al ejecutar herramientas globales mediante npx (por ejemplo npx create-react-app), puede deberse a que el directorio temporal npm-cache carezca de la estructura adecuada. Restablece la ruta temporal ejecutando:

    BASH
    # Verificar la ruta global de npm
    npm config get prefix
    
    # Reconfigurar permisos si experimentas bloqueos de acceso en Linux/macOS
    sudo chown -R $(whoami) ~/.npm
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Evitar usar sudo npm install: Ejecutar comandos de npm con sudo altera la propiedad de los archivos en ~/.npm y genera errores ENOENT o permisos denegados en ejecuciones posteriores.
  • Mantener npm actualizado: Actualiza periódicamente el cliente oficial de npm para beneficiarte de correcciones en el manejo del sistema de archivos:
    BASH
    npm install -g npm@latest
    
  • Incluir package-lock.json en Git: Sube siempre el lockfile al repositorio para asegurar que todo el equipo trabaje con las mismas versiones e índices de archivos.
Autor • Diseñador Web & Creador de Apps

Rodolfo Castro

Diseñador web, creador de aplicaciones y fundador de SoporteCero. Especialista en desarrollo de productos digitales, interfaz de usuario y arquitectura web. Cada tutorial y solución de SoporteCero es reproducido y verificado en laboratorio técnico para ofrecer guías funcionales y actualizadas.