2017-09-16 5 views
2

ES6でfor-of-loop(または別のループ)を使用して複数のファイルをインポートおよびエクスポートする方法はありますか?for-of-loopでのES6のインポート

私が書く必要がループなし
const moduleNames = ['NumberUtils', 'StringUtils', 'ArrayUtils', 'MyModule', 'AnotherModule', 'BaseModule'] 

let modules = {} 

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

export modules 

:ESモジュールの主な機能の

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

あなたが「./NumberUtils」から '輸出{NumberUtilsとしてデフォルト}を行うことができます;' FYI、とリストのこれらのタイプが容易になりました維持する。配列に項目を追加するよりも、1行のコードを追加するのがなぜ難しいのですか? – loganfsmyth

答えて

1

私はこの解決策を見つけた:

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

一つは、彼らが静的に解析することが可能です。このため、importの文は、strict syntaxに従いますので、exportとなります。ループなしのスニペットは、それが行われなければならない方法です。

これにより、モジュールのインポートとエクスポートをIDEとツールで正確に把握することができます。これは、例えば、木の揺れに便利です。

1

私は、インデックスファイルを作成し、複数のコンポーネントを1回のインポートでインポートする方が良いと思います。複数のインポートファイルの場合

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

export { 
    PopUp, 
    ToggleSwitch 
}; 

//app.js 

import { PopUp, ToggleSwitch } from './components'; 
関連する問題