Heim >Web-Frontend >js-Tutorial >Wie hat Node.js seine Unterstützung für ES6-Module weiterentwickelt?
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!