Maison  >  Article  >  interface Web  >  Comment Node.js a-t-il évolué dans sa prise en charge des modules ES6 ?

Comment Node.js a-t-il évolué dans sa prise en charge des modules ES6 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 21:08:03270parcourir

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

Node.js prévoit de prendre en charge les modules ES6 : un aperçu en profondeur

L'environnement d'exécution JavaScript Node.js prend depuis longtemps en charge les modules CommonJS pour charger du code externe. Cependant, avec l'avènement d'ES6 (ECMAScript 2015), l'introduction de la prise en charge native des modules a soulevé une question : Node.js accepterait-il les modules d'importation/exportation ?

Node.js 13.2.0 et au-delà

Depuis Node.js 13.2.0, la prise en charge des modules ES a été introduite sans nécessiter d'indicateur expérimental. L'activation de la prise en charge du module ECMAScript (ESM) implique de définir le fichier package.json sur :

{
  "type": "module"
}

Tous les fichiers avec .js, .mjs ou aucune extension seront traités comme des ESM. Des méthodes alternatives d'activation des modules ES sont également disponibles et documentées dans les notes de version.

Node.js 13.1.0 et versions antérieures

Pour les anciennes versions de Node.js, le Le chargeur de modules [esm](https://github.com/standard-things/esm) fournit une implémentation prête pour la production des modules ES :

node -r esm main.js

Chronologie de développement historique

23 avril 2019

Une mise à jour du mécanisme de détection des modules ECMAScript a été intégrée, introduisant des options pour package.type (module ou commonjs) et de nouvelles options pour spécifier le point d'entrée types et résolution du spécificateur de module.

17 janvier 2019

Node.js 11.6.0 incluait les modules ES en tant que fonctionnalité expérimentale, activés à l'aide de l'indicateur :

node --experimental-modules index.mjs

Le plan était de supprimer cet indicateur dans la version v10.0 LTS.

13 septembre 2017

Node.js 8.5.0 ajouté prise en charge des fichiers .mjs, accessibles derrière un drapeau :

node --experimental-modules index.mjs

L'intention initiale était de supprimer ce drapeau pour la version v10.0 LTS.

8 septembre 2017

Le support initial des modules ESM a été ajouté à la branche principale Node.js, rendue accessible derrière l'indicateur --experimental-modules.

Février 2017

L'équipe Node.js a annoncé la décision d'utiliser l'extension de fichier .mjs comme solution la moins perturbatrice, permettant la coexistence des modules CommonJS et ES. La mise en œuvre a été estimée à prendre au moins un an.

Octobre 2016

Après une réunion du TC-39, un développeur Node.js a décrit les défis liés à la mise en œuvre des modules ES. Les principaux problèmes comprenaient l'analyse statique ou dynamique, l'application de correctifs singe et la détection de modules. L'utilisation de l'extension *.mjs est apparue comme une solution probable.

Avant 2016

Le débat sur la prise en charge du module ES dans Node.js durait depuis un certain temps. période considérable. Diverses propositions et discussions visaient à répondre aux différentes exigences de Node.js et HTML tout en s'adaptant à la nouvelle spécification.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn