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.
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.
Stabilisierte und experimentelle Features
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].
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].
Experimentelles Flag für Modulsystemwechsel
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.
Long-Term Support für Node.js 20
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
Copyright © 2023 Heise Medien