Lingua-e
← Errores
JavaScript

Qué significa ENOENT: no such file or directory y cómo solucionarlo

Referencia del error

ENOENT: no such file or directory

Lenguaje

JavaScript

Severidad

Media

Cuándo ocurre

ENOENT es un código de error POSIX que significa 'Error NO ENTry' (sin entrada).

Posibles soluciones

Usa path.join(__dirname, 'nombrearchivo') para construir rutas relativas al módulo actual en lugar del directorio de trabajo del proceso. Verifica que el archivo exista con fs.existsSync() antes de leerlo. Cuando el archivo faltante es generado por una herramienta de compilación, asegúrate de que el paso de compilación se ejecutó correctamente antes de que el proceso Node.js arranque.

Errores relacionados

Más detalles

ENOENT es un código de error POSIX que significa 'Error NO ENTry' (sin entrada). En Node.js se lanza cuando una operación del sistema de archivos (leer, escribir, eliminar, renombrar) apunta a una ruta que no existe. Es el equivalente en Node.js de FileNotFoundError de Python.

Por qué ocurre

  • La ruta del archivo es relativa y el directorio de trabajo del proceso no es el que el desarrollador esperaba.
  • El archivo nunca fue creado, fue eliminado, o fue colocado en un directorio diferente.
  • Un error tipográfico en el nombre del archivo o la ruta, incluyendo mayúsculas/minúsculas incorrectas en sistemas de archivos sensibles a ellas.
  • Un paso de compilación que debería generar el archivo falló silenciosamente, dejando la ruta vacía.

Posibles soluciones

Usa path.join(__dirname, 'nombrearchivo') para construir rutas relativas al módulo actual en lugar del directorio de trabajo del proceso. Verifica que el archivo exista con fs.existsSync() antes de leerlo. Cuando el archivo faltante es generado por una herramienta de compilación, asegúrate de que el paso de compilación se ejecutó correctamente antes de que el proceso Node.js arranque.

Ejemplos

JavaScript

Código que causa el error

const fs = require("fs");

const content = fs.readFileSync("./config.json", "utf8");
console.log(content);

Error en la terminal

Error: ENOENT: no such file or directory, open './config.json'
    at Object.openSync (node:fs:601:18)
    at Object.readFileSync (node:fs:469:35)

Código corregido

const fs = require("fs");
const path = require("path");

const configPath = path.join(__dirname, "config.json");

if (!fs.existsSync(configPath)) {
  console.error("config.json not found at", configPath);
  process.exit(1);
}

const content = fs.readFileSync(configPath, "utf8");
console.log(content);

Practica en inglés

¿Cómo le explicarías un ENOENT: no such file or directory a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis