ECMAScript Modules: Slik fikset Microsoft mye raskere VS Code-oppstart

Den første stabile VS Code-versjonen som bruker ECMAScript Modules (ESM) overalt ble nylig lansert – men mer jobb gjenstår.

Mange bruker VSCode, men mange irriterer seg også over hastigheten - eller mangel på sådan. 📸: Shutterstock / NTB
Mange bruker VSCode, men mange irriterer seg også over hastigheten - eller mangel på sådan. 📸: Shutterstock / NTB Vis mer

Microsoft har helt siden 2022 jobbet med å bytte ut modulformatet som brukes i VS Code fra AMD (Asynchronous Module Definition) til det mer moderne ECMAScript Modules (ESM)-formatet.

Nå er Microsoft endelig i mål, og med VS Code 1.94 har selskapet lansert den aller første stabile utgaven av editoren som bruker ESM overalt, skriver DevClass.

– Det betyr at alle lag av VS Code-kjernen (electron, node.js, browser, workers) bruker import- og export-syntaksen i JavaScript for å laste inn eller eksportere moduler, skriver Microsoft i lanserings-bloggposten.

De er imidlertid ikke helt i mål: Utvidelser til VS Code bruker fortsatt det gamle CommonJS-formatet for lasting av moduler ("require"-syntaks).

Mye raskere oppstart

ESM er det offisielle standardformatet for moduler i JavaScript, og har innebygget støtte i JavaScript-motorer som V8 – som brukes i Chromium-baserte nettlesere. VS Code er laget med Electron-rammeverket, som embedder Chromium og Node.js.

Ifølge Microsoft er nå all bruk av den gamle AMD-loaderen i koden deaktivert, og vil også bli fjernet helt i løpet av oktober.

Oppstartstiden til VS Code ble mye kjappere etter at man gikk over fra AMD til ESM. 📸: Microsoft
Oppstartstiden til VS Code ble mye kjappere etter at man gikk over fra AMD til ESM. 📸: Microsoft Vis mer

– Det å flytte til ESM forbedrer oppstartstiden betydelig, skriver Microsoft.

Den raske oppstartstiden skyldes delvis at mye "overhead" forårsaket av AMD er borte, og delvis at bundlestørrelsen er redusert med mer enn 10 prosent.

Vil ha det for utvidelser også

Det at hele VS Code-kjernen er over på ESM, vil gjøre det mulig for Microsoft å forbedre måten de jobber med utvikling av editoren på.

– Med ESM vil en masse moderne tooling fungere for oss.

Mange som jobber med utvikling av utvidelser til VS Code håper nå på å få fart på arbeidet med å gjøre det mulig å bruke ESM også for utvidelser. I dag kan VS Code-utvidelser kun bruke CommonJS.

Det er mer enn tre år siden ønsket om ESM for utvidelser ble lagt inn som en issue på GitHub, men utviklere som lager utvidelser og som vil bruke ESM i koden må nå transpilere kildekoden fra ESM til CommonJS.

Med full ESM-støtte vil man blant annet kunne få mulighet for tree-shaking, det vil si automatisk fjerning av kode som ikke er i bruk. Det vil igjen kunne redusere filstørrelse og øke ytelsen.