Cloudflare heeft op 9 september een nieuwe moduleloader voor Workers aangekondigd. Dat onderdeel zoekt en laadt de losse codeonderdelen waaruit een programma bestaat. De wijziging moet het gedrag van Workers beter laten aansluiten op Node.js, zodat software minder afwijkende regels tegenkomt bij het laden van die onderdelen.
Zelf inschakelen
De nieuwe aanpak staat nog niet standaard aan. Ontwikkelaars kunnen hem activeren met de compatibiliteitsoptie new_module_registry. Volgens Cloudflare schakelt ook een recent ingestelde compatibiliteitsdatum deze functie niet vanzelf in. Bestaande Workers blijven voorlopig hun vertrouwde loader gebruiken.
Werk uitstellen tot het nodig is
De documentatie beschrijft dat JavaScript-modules in ESM-formaat pas bij de eerste import worden gecompileerd: voorbereid voor uitvoering. Meerdere uitvoeromgevingen kunnen die gecompileerde code uit een gedeelde cache halen. De oude loader bereidde ESM-modules uit de Worker-bundel vooraf voor en miste die gedeelde cache. Dit beperkt dubbel voorbereidingswerk.
Meer weten?
Kies de verdieping die je interessant vindt.
Waarom dezelfde bestandsnaam toch twee modules kan opleverenDe volledige verwijzing naar een module bepaalt welke instantie je krijgt.
De nieuwe registry behandelt verwijzingen als URL’s. Daardoor tellen ook queryparameters en het fragment na een hekje mee bij de identiteit van een module. Twee verwijzingen naar dezelfde broncode met verschillende parameters kunnen ieder hun eigen exemplaar met eigen interne toestand krijgen. De documentatie maakt daarnaast onderscheid tussen zulke exemplaren en de gedeelde moduledefinitie. Het delen van gecompileerde code betekent dus niet dat alle uitvoeromgevingen dezelfde programmatoestand delen.
Verder bij de bron
Lees zelf de onderzoeken, uitleg en aankondigingen achter dit verhaal.
Zelfstandig geformuleerde uitleg, gemaakt met behulp van AI op basis van de genoemde bronnen. Zo werken we.
