Node.js 21 er lansert – endelig er fetch stabilt

Lar også utviklere prøve ESM som standard modulformat i stedet for Common JS. Her er de viktigste nyhetene.

Node.js er ute i ny versjon. 📸: Node.js
Node.js er ute i ny versjon. 📸: Node.js Vis mer

Oktober er en bra måned for alle som har mye med Node.js å gjøre. Da lanseres nemlig både en ny hovedversjon av Node.js og en ny LTS-versjon . LTS står for Long Term Support, og er en stabil versjon som vedlikeholdes og supporteres i en lenger periode enn den "vanlige" versjonen.

Teamet bak Node.js lanserte tirsdag denne uken Node.js 21, som også betyr at Node 20 om kort til vil bli den aktive LTS-versjonen. Det melder blant andre DevClass.

OpenJS Foundation anbefaler at Node.js 21 brukes til tidlig testing av ny funksjonalitet, mens versjon 20 LTS brukes i produksjon. Det er for øvrig bare Node-versjoner med partall som blir promotert til LTS.

«Det forenkler utvikling med JavaScript som kjører både på front- og backend.»

Stabilt fetch-API

En av de største nyhetene i Node.js 21 er at fetch-API-et nå har fått status som stabilt ("stable"). Fetch brukes mye i moderne web-applikasjoner for asynkron henting av data, og utviklere har kunnet bruke det siden Node.js 18 uten å måtte importere noe. Tidligere måtte man importere for eksempel node-fetch eller løsninger som Axios.

Det er likevel først nå med Node.js 21 at det innebygde fetch-API-et i Node-kjernen har fått status som stabilt.

– Dette er en fortsettelse av arbeidet med å legge til Web-API-er i Node.js der det gir mening. Det forenkler utvikling med JavaScript som kjører både på front- og backend, skriver Red Hat i en bloggpost.

Ifølge DevClass er årsaken til at fetch ikke har blitt regnet som stabilt før nå at det avhenger av WebStreams – et API for håndtering av strømming av data ved å stykke opp data i små biter. WebStreams er nå også stabilt i versjon 21.

ESM og ny JavaScript-motor

I Node.js har man tradisjonelt brukt modulformatet CommonJS for å eksportere og importere JavaScript-moduler. Altså syntaksen der du bruker module.exports og require().

Det har imidlertid en stund vært mulig også i Node.js å bruke det nye ESM-formatet (EcmaScript modules), det nye modulformatet der du bruker import og export.

CommonJS er fortsatt standardformatet for moduler i Node.js, men fra Node.js 21 er det et nytt flagg, --experimental-default-type, som lar deg bruke ESM som standard modulformat. Med det flagget skrudd på, vil filer med endelser .js håndteres av Node som ESM, mens kun .cjs-filer vil være CommonJS.

I Node.js 21 er JavaScript-motoren oppgradert til versjon 11.8. Ellers nevner vi at det nå er eksperimentell støtte for WebSocket.

Du finner flere detaljer på Node.js-bloggen.