Improve the error message for missing modules
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 122k
- Forks
- 37.3k
- Merge medio
- 4 d 2 h
- PR fusionados (30 d)
- 283
Descripción
Currently, the error that is produced in case of a missing module is not really user friendly:
node:internal/process/esm_loader:74
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'not-existing-module' imported from /Users/matteo/temp/a.mjs
at new NodeError (node:internal/errors:363:5)
at packageResolve (node:internal/modules/esm/resolve:698:9)
at moduleResolve (node:internal/modules/esm/resolve:739:18)
at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:853:11)
at Loader.resolve (node:internal/modules/esm/loader:89:40)
at Loader.getModuleJob (node:internal/modules/esm/loader:242:28)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:73:40)
at link (node:internal/modules/esm/module_job:72:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
Rust for example provide more user friendly errors:
error[E0432]: unresolved import `crate::constants`
--> src/primes.rs:5:12
|
5 | use crate::constants::{FNUM, PNUM, SMAX};
| ^^^^^^^^^ maybe a missing crate `constants`?
Note that our errors do not list which line the dependency was not specified.
What do you think? I think it would improve things long term.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza rastreando la ruta del módulo faltante a través de internal/process/esm_loader y internal/modules/esm/resolve y loader, usando la salida mostrada de ERR_MODULE_NOT_FOUND como referencia. El issue no nombra ninguna prueba ni prescribe una redacción exacta; se consideraría terminado acordar e implementar un error más claro que identifique dónde se solicitó la dependencia, con cobertura para el mensaje resultante.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, node.js
- Área
- backend, developer-experience
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Tranquilo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 35/100