ES6 importer l'équivalent de require() sans les exportations
En utilisant require(./filename) je peux inclure et d'exécuter le code à l'intérieur nom de fichier sans aucune exportation définies à l'intérieur d' nom de fichier lui-même.
MDN a une excellente liste des variantes de syntaxe:
importation defaultMember à partir du module "nom";
importation * que le nom de "nom du module";
importer { membre } à partir du module "nom";
importer { membre alias } à partir du module "nom";
importer { member1 , member2 } à partir du module "nom";
importer { member1 , member2 comme alias2 , [...] } à partir du module "nom";
importation defaultMember, { membre [ , [...] ] } à partir du module "nom";
importation defaultMember, * que le nom de "nom du module";
importation du module "nom";
(L'emphase est mienne)
Ce fait semble être incorrect selon le même page que vous avez mentionnés dans votre réponse. Ce genre d'importation d'exécuter du code, mais pas de maintenir toutes les références à des variables qui sont définies (j'ai confirmé ce problème dans mon projet). pouvez-vous montrer un exemple de ce que tu veux dire par “en maintenant les variables”? Comment comparez-vous les deux? Les modules natifs vs NodeJS ou transpiling avec Babel? Par exemple, si j'ai un fichier appelé code.js où j'ai const foo = 1; console.log(foo); et je dis import "code.js" dans main.js, je n'aurai pas accès à foo à l'intérieur de main.js. Cependant, 1 sera imprimé sur la console depuis le code à l'intérieur code.js à exécuter. Si c'est un peu dur à suivre, voici un StackBlitz démontrer ce que je fais. C'est exactement comment NodeJS & exiger des œuvres. C'est pas que c'est de ne pas garder des références, mais ces variables sont portée de sorte que vous ne peut pas accéder dans le module appelant. Si vous aviez de mettre foo sur la fenêtre (navigateur) ou global (Nœud) ce serait se comporter comme vous vous attendez Il n'y a pas, non. Je peux voir comment vous pourriez penser que ce serait la même si!
L'équivalent est simplement:
MDN a une excellente liste des variantes de syntaxe:
(L'emphase est mienne)
pouvez-vous montrer un exemple de ce que tu veux dire par “en maintenant les variables”? Comment comparez-vous les deux? Les modules natifs vs NodeJS ou transpiling avec Babel?
Par exemple, si j'ai un fichier appelé
code.js
où j'aiconst foo = 1; console.log(foo);
et je disimport "code.js"
dansmain.js
, je n'aurai pas accès àfoo
à l'intérieur demain.js
. Cependant,1
sera imprimé sur la console depuis le code à l'intérieurcode.js
à exécuter. Si c'est un peu dur à suivre, voici un StackBlitz démontrer ce que je fais.C'est exactement comment NodeJS & exiger des œuvres. C'est pas que c'est de ne pas garder des références, mais ces variables sont portée de sorte que vous ne peut pas accéder dans le module appelant. Si vous aviez de mettre foo sur la fenêtre (navigateur) ou global (Nœud) ce serait se comporter comme vous vous attendez
Il n'y a pas, non. Je peux voir comment vous pourriez penser que ce serait la même si!
OriginalL'auteur CodingIntrigue