zurück zum Artikel

JavaScript-Runtime Node.js 21 bringt experimentellen Modulsystemwechsel

Maika Möbus

(Bild: Trismegist san/Shutterstock.com)

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.

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 [1]. 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) [2].

Heise-Konferenz: Advanced Angular Day

Am 30. November 2023 richten iX und dpunkt.verlag den Advanced Angular Day [3] 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 [4] bietet sechs Vorträge sowie drei Ganztages-Workshops am 20. November, 1. und 4. Dezember [5].

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 [6] 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 [7] bietet die offizielle Dokumentation.

Alle Details zum neuen Release finden Interessierte in einem Blogeintrag [8].

(mai [9])


URL dieses Artikels:
https://www.heise.de/-9337521

Links in diesem Artikel:
[1] https://www.heise.de/news/Laufzeitumgebung-fuer-JavaScript-Node-js-18-fuehrt-neue-globale-Fetch-API-ein-7017275.html
[2] https://websockets.spec.whatwg.org/#the-websocket-interface
[3] https://enterjs.de/advanced-angular.php
[4] https://enterjs.de/advanced-angular.php#programm
[5] https://enterjs.de/advanced-angular.php#workshops
[6] https://www.heise.de/news/JavaScript-Runtime-Node-js-20-fuehrt-experimentelle-Zugriffsbeschraenkungen-ein-8974049.html
[7] https://nodejs.dev/en/about/releases/
[8] https://nodejs.org/en/blog/announcements/v21-release-announce
[9] mailto:mai@heise.de