Open mosbth opened 2 years ago
Själva programmet fungerar utmärkt med:
const require = createRequire(import.meta.url);
this.config = require(`../${configFile}`);
this.mysql = require("promise-mysql");
Men dbwebb validate ignorerar helt .mjs-filer. Jag bytte namn på filerna tillfälligt till .js och validerade dem på det sättet. Ett felmeddelande:
Parsing error: unexpected token import
Tänker att det kanske kan bero på namnbytet?
När man använder ESM moduler kan man antingen namnge dem som .mjs
eller sätter man "type": "module"
i sin fil package.json
.
Jag har kollat lite och gjorde bla två exampelprogram, ett med node-moduler world
och ett med ESM moduler world_esm
. De båda katalogerna ligger i kursrepot under example/nodejs
och fungerar båda två.
Det är dock lite problematiskt att få både Node-moduler och ESM-moduler att fungera med dbwebb validate
tillsammans med kursrepot.
Då kursrepots alla exempelprogram är skrivna i node moduler så är det den enkla vägen genom kursen. Då fungerar alla validatorer och exempelprogram och vi minimerar trubbel.
Så, rekommendationen får bli att köra på node moduler.
Att ändra detta i kursen får bli ett sommarjobb till nästa gång kanske.
Det finns en del funderingar kring om vi kan stödja ES moduler i kursen. Dels hur vi kan göra det och dels hur det påverkar valideringen.
Vi kan troligen hitta ett sätt som fungerar i kmom02/03 men jag är lite osäker på hur det blir till kmom04 och framåt, men det är säkert lösbart med lite extra kraftinsats.
Berätta gärna hur ni gjort hittills så tar vi det därifrån.
Det är okey att jobba med ES moduler om man vill och om man även vet att det inte är grundplanen i kursen.