loopbackio / loopbackio/loopback-next
[BOOT] Not possible to import ESM project files
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5.1k
- Forks
- 1.1k
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 27
Descripción
Describe the bug
There is a problem bootstrapping applications created in the ESM format.
When loopback tries to load all project files (controllers, models, services, etc), it uses utility function loadClassesFromFiles from packages/boot/src/booters/booter-utils.ts which is using CommonJs require() to import projects files. CommonJs cannot require ESM files, only by dynamic importing them using import().
As a result, the similar error appears on startup:
Logs
No response
Additional information
The issue is reproduced in the ToDo example:
- Clone repo, install deps.
- Navigate to
examples/todo. - Run with
npm start
Reproduction
https://github.com/alexbal7/loopback-next/tree/fix/esm-files-import
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 en packages/boot/src/booters/booter-utils.ts, centrándote en loadClassesFromFiles y en su uso al iniciar la aplicación examples/todo. Reproduce el problema ejecutando npm start desde examples/todo después de instalar las dependencias. Se considera terminado cuando un proyecto con formato ESM puede iniciarse y cargar sus controladores, modelos, servicios y otros archivos del proyecto sin el error de inicio indicado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- node.js, typescript
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 45/100