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!