2016-02-16 14 views
5

मैं एक स्क्रिप्ट है कि पर एएमडी मॉड्यूल का एक बहुत का आयात करता है और एक प्रारंभ प्रणाली को बुलाती है हर एक:ES6: आयात कई फाइलों

define(['underscore', './mod0', ..., './modN'], function (_) { 
    _.each(_.toArray(arguments).slice(1), function (m) { 
     init(m); 
    }); 
}); 

मैं ES6 आयात वाक्य रचना करने के लिए स्विच करने की आवश्यकता है और मैं यह पता लगाने की कोशिश कर रहा हूँ यदि किसी सूची से मॉड्यूल आयात करना संभव है, तो मेरे एएमडी कोड के समान तरीके से। मैं पागलपन से बचना चाहता हूं जैसे:

import mod0 from './mod0'; 
... 
import modN from './modN'; 

init(mod0); 
... 
init(modN); 

यह कैसे पूरा किया जा सकता है इस पर कोई सलाह है? धन्यवाद!

उत्तर

5

क्या सूची से मॉड्यूल आयात करना संभव है?

नहीं, आपके मॉड्यूल लोडर (जो भी हो) स्पष्ट रूप से आविष्कार किए बिना नहीं। import घोषणाओं का उपयोग करके ऐसा करने का कोई तरीका नहीं है।

यह कैसे पूरा किया जा सकता है इस पर कोई सलाह है?

eval शायद :-)

यह कर सकता है मैं दो मॉड्यूल का उपयोग कर की सिफारिश करेंगे:

// index.js 
export mod0 from './mod0'; 
… 
export modN from './modN'; 

// init-all.js 
import * as modules from './index'; // enumerable namespace 

for (var moduleIdentifier in modules) 
    init(modules[moduleIdentifier]); 

आप संभवतः केवल एक ही मॉड्यूल के साथ भी ऐसा ही कर सकता है (जो खुद को मॉड्यूल नेमस्पेस ऑब्जेक्ट के रूप में आयात करता है), लेकिन यह निश्चित रूप से असली पागलपन होगा।