37 votes

Module d'import nodejs 8 - Requiert ou importe?

Je me demande simplement comment importer un module dans node.js 8 - utilisons-nous toujours require ?

Ou avons-nous encore besoin de babel pour utiliser import ?

J'ai fouillé mais ne semble pas avoir de réponse. Si nous devons toujours utiliser require, pourquoi le nœud ne peut-il pas encore mettre en œuvre import ?

38voto

kuzyn Points 1150

Mise à JOUR-2018.11.15 ↓

Réponse courte
Nous sommes toujours à l'aide d' require

Réponse longue
MES chargement en partie a atterri dans le nœud 8.5.0 qui a été publié en septembre 2017. En tant que tel, il a été une partie des specs comme, à titre expérimental, pour un peu de temps: voir la documentation de l'API ici. Avertissements comprennent la nécessité pour l' --experimental-modules drapeau et l'utilisation d'un nouveau .mjs extension pour les modules.

Il y a toujours des changements qui doivent se produire en V8 avant MES le chargement est stable et complet, de sorte qu'avec ma réponse originale à cette question, je voudrais encore vous conseiller sur coller avec CommonJS require si vous n'utilisez pas encore Babel pour d'autres trucs

Voir ce post pour plus d'explication didactique


PRÉCÉDENT RÉPONDRE ↓

Les deux implémentations sont complètement différentes sous le capot, donc il n'y a plus que ce à quoi répond les yeux

La vente à emporter est qu'il y a encore prolongé des problèmes/questions sur le cahier des charges (tout le chemin à V8), et comme tel, import actuellement, ne peuvent pas être mis en œuvre dans le Nœud sans l'aide d'un transpiler

Voir ce commentaire (daté de février 2017) à partir de l'un des contributeur:

Au stade actuel, il existe toujours un certain nombre de spécification et de mise en œuvre de questions qui doivent arriver sur l'ES6 et de la Machine Virtuelle côté des choses avant Node.js peut même de commencer à travailler un justifiables de la mise en œuvre de l'ES6 modules. Le travail est en cours, mais cela va prendre un peu de temps - Nous sommes actuellement à la recherche d'environ un an au moins.

Gardez à l'esprit que transpilers simplement convertit l'ES6 module de syntaxe à la CommonJS module de syntaxe, donc il n'y a actuellement aucun des avantages de performance. En d'autres termes, si vous n'avez pas de Babel pipeline déjà, il n'y a pas beaucoup d'incitations à créer un juste pour utiliser le nouveau projet d' import de la syntaxe, à l'exception d'une proactif point de vue syntaxique

Pour plus de détails sur la façon dont la mise en œuvre diffère, voir cette écriture jusqu'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X