ES Modules in Node angekommen

ES Modules in Node.js angekommen: Support in v13.2 nicht mehr experimentell
Keine Kommentare

Das --experimental-Flag ist weg: ES Modules sind in Node.js nicht mehr als experimentell markiert. Mit dem Release von Node 13.2 kann das Feature jetzt genutzt werden.

Der Node-Core unterstützt nun ES Modules. Nachdem mit Node v12.0 eine neue Version für die Implementierung der ES6-Module vorgelegt worden war, ist Version 13.2 das erste Release ohne --experimental-Flag für das Feature. Die Entscheidung, das Flag zu entfernen, hatte das Node-Team Mitte November verkündet:

Klassisch hat Node.js mit CommonJS als Modulformat gearbeitet. Wie das Node.js Module Team im Blogpost zu den Neuerungen erklärt, bleibt diese Option auch bestehen. Ob ES Modules oder CommonJS genutzt werden soll, muss weiterhin spezifiziert werden. Die Dateiendung .mjs kann dazu weiterhin verwendet werden. Node interpretiert Module aber auch dann als ES Modules, wenn in der nächstgelegenen package.json ein Top-Level-Feld "type" mit dem Wert "module" enthalten ist. Auch Strings, die als Argument für --eval oder per STDIN mit dem Flag —-input-type=module übergeben werden, werden als ES Modules interpretiert. Analog können diese Werte auf CommonJS gesetzt werden. Darüber hinaus entscheidet der initiale Input darüber, welches Modulformat Node.js auswählt. Wird zuerst ein ES Module übergeben, setzt Node dies als Standard; gleiches gilt für CommonJS.

ES Modules in Node.js: Differenzen zu CommonJS beachten

Beachtet werden muss außerdem, dass die Variablen require, exports, module.exports, __filename und __dirname aus CommonJS nicht in ES Modules verfügbar sind. Für require steht alternativ module.createRequire() zur Verfügung. Mit import.meta.url können außerdem Entsprechungen von __filename und __dirname in ES Modules erzeugt werden.

Obwohl der Support für ES Modules nun nicht mehr als experimentell markiert ist, kann sich in Zukunft noch was daran verändern. Das Flag ist zwar entfernt worden, die Arbeiten an ES Modules in Node.js sind aber noch nicht abgeschlossen. Noch in Arbeit ist beispielsweise der Support für Packages mit dualem Modulsystem, die also sowohl als CommonJS-Modul als auch als ES Module importiert werden können.

Weitere Informationen zum Support für ES Modules in Node.js können im Blogpost zum Release gefunden werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -