2015-12-14 18 views
5

बेबेल के साथ प्रतिक्रिया करें। मुझे आयात और मॉड्यूल.एक्सपोर्ट्स के साथ यह भ्रम है। ईएस 6 कोड को ईएस 5 में परिवर्तित करते समय मैं बेबेल मानता हूं आयात और निर्यात क्रमशः आवश्यक और मॉड्यूल.एक्सपोर्ट को परिवर्तित करता है।मॉड्यूल.एक्सपोर्ट्स और ईएस 6 आयात

यदि मैं एक मॉड्यूल से फ़ंक्शन निर्यात करता हूं और फ़ंक्शन को किसी अन्य मॉड्यूल में आयात करता हूं, तो कोड ठीक से निष्पादित होता है। लेकिन अगर मैं मॉड्यूल.एक्सपोर्ट्स के साथ फ़ंक्शन निर्यात करता हूं और "आयात" का उपयोग करके आयात करता हूं तो रनटाइम पर त्रुटि फेंक दी जाती है कि यह एक फ़ंक्शन नहीं है।

मैंने एक उदाहरण पकाया।

// Tiger.js 
function Tiger() { 
    function roar(terrian){ 
     console.log('Hey i am in ' + terrian + ' and i am roaing'); 
    }; 
    return roar; 
} 

module.exports = Tiger; 

// animal.js 
import { Tiger } from './animals'; 

var animal = Tiger(); 
animal("jungle"); 

मैंने इसे प्रीसेट करने के लिए प्रीसेट es2015 के साथ बेबेल का उपयोग किया। यह मैं निम्नलिखित त्रुटि

Uncaught TypeError: (0 , _animals.Tiger) is not a function

देता है लेकिन अगर मैं module.exports = Tiger; हटाने और export { Tiger }; साथ बदलें यह ठीक काम करता है।

मुझे यहाँ क्या याद आ रही है ??

संपादित करें: मैं मॉड्यूल बंडलर के रूप में ब्राउज़र को उपयोग कर रहा हूं।

+0

क्या आपने बेबेल आउटपुट देखा है? 'टाइगर.जेएस' के पारदर्शी स्रोत को देखते हुए आपको तुरंत बताएगा कि यह क्यों काम नहीं कर रहा है। लंबी कहानी छोटी: एक मॉड्यूल सिस्टम के साथ चिपकें या वेबपैक जैसे मॉड्यूल बंडलर का उपयोग करें जो असंगतताओं का ख्याल रखेगा। – GJK

+0

उल्लेख करने के लिए खेद है कि मैं मॉड्यूल बंडलर – Nani

उत्तर

2

export { Tiger }module.exports.Tiger = Tiger के बराबर होगा। इसके विपरीत, module.exports = Tigerexport default Tiger के बराबर होगा। तो जब आप module.exports = Tiger का उपयोग करते हैं और फिर import { Tiger } from './animals' का प्रयास करते हैं तो आप प्रभावी रूप से Tiger.Tiger के लिए पूछ रहे हैं।

+0

के रूप में ब्राउज़रीकरण का उपयोग कर रहा हूं तो सही आयात विवरण यहां क्या होगा? क्या यह सिर्फ 'बाघ आयात करें'।/जानवरों का होगा? –

+0

मुझे विश्वास है, मानते हुए कि आप tiger.js को बदलना नहीं चाहते थे –

संबंधित मुद्दे