Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stöd ES moduler som ett komplement till Node moduler #42

Open
mosbth opened this issue Feb 1, 2022 · 2 comments
Open

Stöd ES moduler som ett komplement till Node moduler #42

mosbth opened this issue Feb 1, 2022 · 2 comments

Comments

@mosbth
Copy link
Member

mosbth commented Feb 1, 2022

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.

@blajban
Copy link

blajban commented Feb 1, 2022

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?

@mosbth
Copy link
Member Author

mosbth commented Feb 2, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants