Mise À Jour Le 13 Septembre 2017
NodeJS 8.5.0 a été publié avec le soutien de mjs fichiers derrière un drapeau:
node --experimental-modules index.mjs
Le plan de ce est de retirer le drapeau de la v10.0 version LTS.
Mise À Jour Le 8 Septembre 2017
NodeJS branche master a été mis à jour avec le support initial pour MES modules:
https://github.com/nodejs/node/commit/c8a389e19f172edbada83f59944cad7cc802d9d5
Il devrait être disponible dans la dernière nightly (ce peut être installé via nvm de courir à côté de votre installation existante):
https://nodejs.org/download/nightly/
Et activé derrière le --experimental-modules
drapeau:
package.json
{
"name": "testing-mjs",
"version": "1.0.0",
"description": "",
"main": "index.mjs" <-- Set this to be an mjs file
}
Ensuite, exécutez:
node --experimental-modules .
--Des Informations Obsolètes. Conservé à des fins historiques--
Mise À Jour Février 2017:
https://medium.com/@jasnell/an-update-on-es6-modules-in-node-js-42c958b890c#.6ye7mtn37
La NodeJS les gars ont décidé que la moins mauvaise solution est d'utiliser l' .mjs
extension de fichier. Les plats à emporter à partir de ce qui est:
En d'autres termes, étant donné deux fichiers foo.js
et bar.mjs
, à l'aide de import *
from 'foo'
traitera foo.js
comme CommonJS tout import * from 'bar'
traitera bar.mjs
comme un ES6 Module
Et comme pour les montages...
Au stade actuel, il existe toujours un certain nombre de
la spécification et la mise en œuvre de questions qui doivent arriver sur l'ES6
et la Machine Virtuelle côté des choses avant Node.js pouvez même commencer
travailler jusqu'à une justifiable de mise en œuvre de l'ES6 modules. Le travail est en
des progrès, mais il va prendre un certain temps, Nous sommes actuellement à la recherche
à environ une année au moins.
Mise À Jour Octobre 2016:
L'un des développeurs sur Node.JS récemment assisté à un TC-39 réunion et a écrit un superbe article sur les bloqueurs de mise en œuvre de Node.JS:
https://hackernoon.com/node-js-tc-39-and-modules-a1118aecf95e
La base de ce qui est:
- ES Modules sont statiquement analysé, CommonJS sont évalués
- CommonJS modules permettent de singe brassage des exportations, ES Modules ne sont actuellement pas
- Il est difficile de détecter ce qui est un Module ES et qu'est-ce que CommonJS sans une certaine forme de saisie de l'utilisateur, mais ils essaient.
-
*.mjs
semble la solution la plus probable, à moins qu'ils peuvent détecter avec précision un Module ES sans entrée utilisateur
-- Réponse Originale À Cette Question --
Cela a été une pomme de terre chaude pendant quelques temps. Ligne de fond est que, oui, le Noeud sera éventuellement prendre en charge le ES2015 syntaxe pour l'importation/exportation de modules, probablement lors de la spec pour le chargement des modules est finalisé et approuvé.
Voici un bon aperçu de ce qu'est maintenant NodeJS. Essentiellement, ils doivent s'assurer que la nouvelle spec fonctionne pour le Nœud qui est principalement conditionnelle, synchrone de chargement et aussi HTML, qui est essentiellement asynchrone.
Personne ne sait pour sûr, mais j'imagine Noeud de support import/export
pour une charge statique, en plus de la nouvelle - System.import
du chargement dynamique tout en conservant require
pour le code de legs.
Voici quelques propositions sur la manière dont Nœud peut réaliser ceci: