JavaScript-Runtime Node.js 23: Standardmäßige ES-Modulunterstützung aktiviert
Die aktuelle Major-Version der JavaScript-Runtime schraubt an der Performance und hat native ES-Modulunterstützung im Gepäck.
Die quelloffene JavaScript-Runtime Node.js hat Version 23 erreicht. Zu den wichtigsten Neuerungen gehören die standardmäßige Aktivierung von require(esm)
für Node.js-Anwendungen, die entfernte Unterstützung für 32-Bit-Windows-Systeme, die Stabilisierung des Kommandos node --run
sowie ein überarbeiteter Test-Runner, einschließlich der Unterstützung von Glob-Mustern für Coverage-Dateien.
Neuerungen auf einen Blick
In Node.js 23 ist die Unterstützung für require(esm)
standardmäßig aktiviert. Diese Funktion, die zuvor nur mit dem Kommandozeilen-Flag --experimental-require-module
in den Versionen 20.x und 22.x verfügbar war, ermöglicht das Laden nativer ES-Module mit require()
. Sie gilt zum jetzigen Zeitpunkt noch als experimentell. Das Entwicklerteam bittet um Benutzer-Feedback, um vor der Finalisierung letzte Anpassungen vornehmen zu können.
Beim ersten Auftreten eines nativen ES-Moduls in require()
wird ein experimenteller Warnhinweis ausgegeben. Bei Problemen oder Rückschritten können Nutzerinnen und Nutzer dies im Node.js-Issue-Tracker melden. Die Funktion lässt sich vorübergehend durch --no-experimental-require-module
deaktivieren. Die vollständige Implementierung ohne Flag soll nach der Erhebung von Node.js 22 zur LTS-Version voraussichtlich in einer späteren Minor-Version erfolgen.
Node.js 23 behebt Fehler
Mit aktiviertem require(esm)
löst Node.js nicht mehr den Fehler ERR_REQUIRE_ESM
aus, wenn require()
zum Laden eines ES-Moduls verwendet wird. Es besteht jedoch die Möglichkeit, dass der Fehler ERR_REQUIRE_ASYNC_MODULE
auftritt, wenn das Modul oder seine Abhängigkeiten ein Top-Level-Await enthalten. Erfolgreich geladene ES-Module geben ein Namespace-Objekt zurück, das sich mit util.isModuleNamespaceObject()
überprüfen lässt.
Nutzerinnen und Nutzer können mit process.features.require_module
prüfen, ob die Funktion in der aktuellen Node.js-Instanz aktiviert ist. Für Pakete erlaubt die "module-sync"-Exports-Bedingung sowohl require()
als auch import
, dasselbe native ES-Modul zu laden. Weitere Informationen finden sich in der Dokumentation.
Am 7. und 8. Mai findet die Enterprise-JavaScript-Konferenz enterJS 2025 in Mannheim statt. Die Veranstalter dpunkt.verlag und iX suchen dafür nach Vorschlägen für Vorträge und Workshops. Entwicklerinnen und Entwickler können bis zum 8. November 2024 am Call for Proposals teilnehmen.
Blind-Bird-Tickets sind bereits erhältlich – für ein vergünstigtes Ticket bis zum Online-Gang des Programms.
Langzeitunterstützung für Node.js 22
Node.js 23 soll Node.js 22 als aktuelle Release-Linie ersetzen, sobald Node.js 22 im weiteren Verlauf des Oktobers in den Langzeit-Support (LTS) übergeht. Laut dem Veröffentlichungsplan wird Node.js 23 für die nächsten sechs Monate, bis April 2025, als sogenannte Current-Version geführt.
Lesen Sie auch
JavaScript-Runtime Deno 2.0 nimmt es mit Node.js auf
Nähere Details zu Node.js 23 finden sich in den Release Notes.
(mdo)