2017-09-16 3 views
2

Existe-t-il un moyen d'importer et d'exporter plusieurs fichiers en utilisant boucle de boucle (ou une autre boucle) dans ES6?Import ES6 dans la boucle

const moduleNames = ['NumberUtils', 'StringUtils', 'ArrayUtils', 'MyModule', 'AnotherModule', 'BaseModule'] 

let modules = {} 

for (const moduleName of moduleNames) { 
    import module from './' + moduleName 
    modules.moduleName = module 
} 

export modules 

Sans boucle je dois écrire:

import NumberUtils from './NumberUtils' 
import StringUtils from './StringUtils' 
import ArrayUtils from './ArrayUtils' 
import MyModule from './MyModule' 
import AnotherModule from './AnotherModule' 
import BaseModule from './BaseModule' 

export { 
    NumberUtils, 
    StringUtils 
    ArrayUtils 
    MyModule 
    AnotherModule 
    BaseModule 
} 
+0

Vous pouvez faire 'l'exportation {par défaut comme NumberUtils} de « ./NumberUtils »,' Pour votre information, ce qui rend ces types de listes plus faciles à maintenir. Pourquoi ajouter une ligne de code plus difficile que d'ajouter un élément à un tableau? – loganfsmyth

Répondre

1

Pour plusieurs fichiers d'importation, je trouve cette solution:

const files = require.context('../myFolder', true, /(Module|Utils)\.js$/) 
1

L'une des principales caractéristiques des modules ES est qu'ils peuvent être analysés de manière statique. Pour cette raison, la déclaration import suit strict syntax - tout comme export. Un extrait 'sans boucle' est la manière dont cela doit être fait.

Cela permet de comprendre les importations et les exportations de modules exactement dans les IDE et les outils. Ceci est utile pour le tremblement des arbres, par exemple.

1

Je pense que la meilleure façon de le faire est de créer un fichier d'index puis d'importer plusieurs composants en une seule importation.

//index.js 
import PopUp from './PopUp'; 
import ToggleSwitch from './ToggleSwitch'; 

export { 
    PopUp, 
    ToggleSwitch 
}; 

//app.js 

import { PopUp, ToggleSwitch } from './components';