JavaScript-Runtime Node.js 21 bringt experimentellen Modulsystemwechsel

Das Release stabilisiert bestehende Module, führt ein Flag für den Wechsel des Standardmodulsystems ein und wird Node.js 20 als Current-Version ablösen.

In Pocket speichern vorlesen Druckansicht

(Bild: Trismegist san/Shutterstock.com)

Lesezeit: 2 Min.
Inhaltsverzeichnis

Die quelloffene JavaScript-Runtime Node.js hat Version 21 erreicht. Sie überführt zwei Module in den stabilen Zustand, bringt ferner eine experimentelle WebSocket-Implementierung und präsentiert ein experimentelles Flag zum Umstellen des Standardmodulsystems. Zudem aktualisiert das Release die JavaScript-Engine V8 auf Version 11.8, die neue Performance- und Sprachfeatures enthält.

Vor rund 1,5 Jahren führte Node.js 18 die experimentelle Fetch-API ein. Nun liegen sowohl das Fetch- als auch das WebStreams-Modul im stabilen Zustand vor. Die Änderung betrifft somit WebStreams, FormData, Headers, Request, Response und fetch.

Experimentelle Features bringt Node.js 21 ebenfalls mit. Dazu zählt eine Browser-kompatible WebSocket-Implementierung. Sie lässt sich durch das Flag --experimental-websocket aktivieren. Die dann verfügbare globale WebSocket-Implementierung basiert auf dem Standard der Web Hypertext Application Technology Working Group (WHATWG).

Heise-Konferenz: Advanced Angular Day

Am 30. November 2023 richten iX und dpunkt.verlag den Advanced Angular Day aus. Die Online-Konferenz wirft einen tieferen Blick auf das Webframework – von Performance über Accessibility und Testing bis hin zu den neuen Angular Signals. Das Programm bietet sechs Vorträge sowie drei Ganztages-Workshops am 20. November, 1. und 4. Dezember.

Um zwischen den Modulsystemen ECMAScript Modules und CommonJS zu wechseln, stellt Node.js 21 das neue experimentelle Flag --experimental-default-type bereit. Es wechselt das Standardmodulsystem, wovon allerdings solcher Input unberührt bleibt, der explizit als ECMAScript-Module oder CommonJS definiert ist.

Was derzeit implizit als CommonJS verstanden wird, würde nach dem Einsatz des Flags --experimental-default-type=module als ECMAScript-Module verstanden. Dateien ohne Dateiendung interpretiert Node.js mit dem Flag --experimental-wasm-modules als WebAssembly, sofern die Dateien mit der WebAssembly-Präambel \0asm beginnen.

Das Node.js-Team arbeitet zudem an einer Erkennung der ECMAScript-Modul-Syntax, damit Node.js Dateien entsprechend interpretiert. Langfristig soll Node.js diese Syntax standardmäßig und mit minimalen abwärtsinkompatiblen Änderungen (Breaking Changes) unterstützen.

Die im April erschienene Major-Version Node.js 20 soll Ende des Monats in den Long-Term Support (LTS) übergehen. Dann soll Node.js 21 sie als Current Release ersetzen und planmäßig für sechs Monate – bis April 2024 – diesen Status beibehalten, wenn der Erscheinungstermin für Node.js 22 vorgesehen ist. Weitere Informationen zum Support von Node.js-Versionen bietet die offizielle Dokumentation.

Alle Details zum neuen Release finden Interessierte in einem Blogeintrag.

(mai)