¿Qué es el error Cannot Find Module en Node.js?
El error Cannot Find Module es uno de los problemas más comunes a los que se enfrentan los desarrolladores al trabajar con Node.js y Express u otros frameworks. Este mensaje aparece en la terminal cuando Node.js intenta requerir o importar un archivo, paquete o dependencia que no puede localizar en las rutas especificadas.
Causas principales del error
Existen varias razones por las cuales Node.js no logra encontrar un módulo:
- La dependencia no ha sido instalada en el proyecto.
- La carpeta
node_moduleso el archivopackage-lock.jsonestán corruptos. - La ruta del archivo importado es incorrecta o relativa y apunta a una ubicación inexistente.
- Estás intentando ejecutar el script desde el directorio equivocado.
Método 1: Instalar las dependencias faltantes
Si el error menciona el nombre de un paquete externo (por ejemplo, express o lodash), significa que no está instalado en tu entorno.
- Abre tu terminal en la raíz del proyecto.
- Ejecuta el comando para instalar todas las dependencias del archivo
package.json:npm install. - Si falta un paquete específico, instálalo manualmente usando:
npm install nombre-del-modulo.
Método 2: Verificar la ruta de importación en archivos locales
Cuando el módulo faltante es un archivo creado por ti (por ejemplo, const config = require('./config/db');), el error suele deberse a un typo en la ruta.
- Revisa el archivo donde se genera el error y localiza la línea del
requireoimport. - Asegúrate de que la extensión del archivo sea correcta o que la ruta comience con
./o../según corresponda. - Guarda los cambios y reinicia tu servidor de desarrollo con
node app.jsonpm run dev.
Método 3: Limpiar la caché y reinstalar node_modules
A veces, la caché de npm o una instalación interrumpida causan inconsistencias graves en las rutas de los módulos.
- Elimina la carpeta
node_modulesy el archivopackage-lock.jsonusando el comando:rm -rf node_modules package-lock.json(en Linux/Mac) o elimínalos manualmente en Windows. - Limpia la caché de npm ejecutando:
npm cache clean --force. - Vuelve a generar las dependencias ejecutando:
npm install.