Heim >Web-Frontend >js-Tutorial >Wie hat Node.js seine Unterstützung für ES6-Module weiterentwickelt?

Wie hat Node.js seine Unterstützung für ES6-Module weiterentwickelt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 21:08:03330Durchsuche

How has Node.js evolved its support for ES6 Modules?

Node.js plant die Unterstützung von ES6-Modulen: Ein detaillierter Blick

Die JavaScript-Laufzeitumgebung Node.js unterstützt seit langem CommonJS-Module zum Laden von externem Code. Mit der Einführung von ES6 (ECMAScript 2015) löste die Einführung der nativen Modulunterstützung jedoch die Frage aus: Würde Node.js Import-/Exportmodule unterstützen?

Node.js 13.2.0 und darüber hinaus

Ab Node.js 13.2.0 wurde Unterstützung für ES-Module eingeführt, ohne dass ein experimentelles Flag erforderlich ist. Um die Unterstützung des ECMAScript-Moduls (ESM) zu aktivieren, muss die Datei package.json auf Folgendes eingestellt werden:

{
  "type": "module"
}

Alle Dateien mit der Erweiterung .js, .mjs oder ohne Erweiterung werden als ESMs behandelt. Alternative Methoden zum Aktivieren von ES-Modulen sind ebenfalls verfügbar und in den Versionshinweisen dokumentiert.

Node.js 13.1.0 und früher

Für ältere Node.js-Versionen gilt die [esm](https://github.com/standard-things/esm) Modullader bietet eine produktionsreife Implementierung von ES-Modulen:

node -r esm main.js

Historische Entwicklungszeitleiste

23. April 2019

Ein Update des Erkennungsmechanismus für ECMAScript-Module wurde integriert, das Optionen für package.type (Modul oder CommonJS) und neue Optionen zur Angabe des Einstiegspunkts einführt Typen und Auflösung von Modulspezifizierern.

17. Januar 2019

Node.js 11.6.0 enthielt ES-Module als experimentelle Funktion, aktiviert mit der Flagge:

node --experimental-modules index.mjs

Der Plan war, dieses Flag in der LTS-Version v10.0 zu entfernen.

13. September 2017

Node.js 8.5.0 hinzugefügt Unterstützung für .mjs-Dateien, auf die hinter einer Flagge zugegriffen werden kann:

node --experimental-modules index.mjs

Die ursprüngliche Absicht bestand darin, diese Flagge für die LTS-Version v10.0 zu entfernen.

8. September 2017

Erste Unterstützung für ESM-Module wurde zum Node.js-Master-Zweig hinzugefügt und hinter der Flagge --experimental-modules zugänglich gemacht.

Februar 2017

Das Node.js-Team gab die Entscheidung bekannt, die Dateierweiterung .mjs als die am wenigsten störende Lösung zu verwenden, um die Koexistenz von CommonJS- und ES-Modulen zu ermöglichen. Es wurde geschätzt, dass die Implementierung mindestens ein Jahr dauern wird.

Oktober 2016

Nach einem TC-39-Meeting skizzierte ein Node.js-Entwickler die Herausforderungen bei der Implementierung von ES-Modulen. Zu den Hauptthemen gehörten statische vs. dynamische Analyse, Monkey-Patching und Modulerkennung. Die Verwendung der *.mjs-Erweiterung erwies sich als wahrscheinliche Lösung.

Vor 2016

Die Debatte über die ES-Modulunterstützung in Node.js dauerte schon seit einem beträchtlicher Zeitraum. Verschiedene Vorschläge und Diskussionen zielten darauf ab, den unterschiedlichen Anforderungen von Node.js und HTML gerecht zu werden und gleichzeitig die neue Spezifikation zu berücksichtigen.

Das obige ist der detaillierte Inhalt vonWie hat Node.js seine Unterstützung für ES6-Module weiterentwickelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn