loopbackio / loopbackio/loopback-next
[BOOT] Not possible to import ESM project files
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5.1k
- Forks
- 1.1k
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 27
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in packages/boot/src/booters/booter-utils.ts und konzentriere dich auf loadClassesFromFiles sowie dessen Verwendung beim Bootstrapping der examples/todo-Anwendung. Reproduziere das Problem, indem du nach der Installation der Abhängigkeiten npm start aus examples/todo ausführst. Als erledigt gilt die Aufgabe, wenn ein Projekt im ESM-Format starten und seine Controller, Modelle, Services und andere Projektdateien ohne den gemeldeten Startfehler laden kann.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- node.js, typescript
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 45/100