web-dev-qa-db-fra.com

pourquoi les utilisations de nœuds nécessitent de ne pas importer?

J'apprends node.js et je me demande pourquoi il utilise la syntaxe require plutôt que la syntaxe import qui React utilise.

c'est à dire.

const Validator = require("validator");

CONTRE

import Validator from "validator";

Je pensais que import est es6 mais je ne pense pas que cela explique pourquoi il n'est pas utilisé dans le nœud.

8
Holly

import et default sont des fonctionnalités ES6 plus récentes, non encore utilisées par le nœud. Node est en fait déjà en train de mettre en œuvre les nouvelles fonctionnalités comme expérience : avec le --experimental-modules drapeau et uniquement pour les fichiers enregistrés avec .mjs extension.

Des transpilers comme babel permettent d'écrire des spécifications modernes, approuvées et/ou expérimentales ECMAScript . Dans un écosystème de bundlers comme Webpack avec des transpilers comme babel, il devient facile d'écrire du javascript maintenable et évolutif, tandis que le code reste largement supporté car il est transformé en commonjs (le format vous voyez reconnaissable par require (la vieille école import) et module.exports (la vieille école export).

5
axm__

Je pensais que l'importation est es6 mais je ne pense pas que cela explique pourquoi il n'est pas utilisé dans le nœud.

Tout comme la façon dont NodeJS implémente l'intégralité de sa bibliothèque avec des tonnes de fonctions asynchrones qui ne prennent en charge qu'une approche basée sur le rappel. En pensant de cette façon, vous vous rendrez compte que, tôt ou tard, le framework NodeJS prendra certainement en charge la syntaxe import et mettra à niveau toutes ces fonctions asynchrones pour prendre en charge les promesses.

1
Nguyen You

Probablement pour des raisons historiques. node.js et chrome (moteur v8) sont plus anciens que la norme ES6.

D'autre part, voir: Comment puis-je utiliser une importation es6 dans le nœud?

Vous pouvez également utiliser l'importation.

1
teroi