2016-02-27 10 views
34

मैं निम्नलिखित लेकिन एक भी लाइन के साथ, यदि संभव हो तो करना चाहते हैं:ईएस 6, आप एक लाइन में एक आयातित मॉड्यूल कैसे निर्यात कर सकते हैं?

  • import Module from './Module/Module;
  • export Module;

मैंने कोशिश की निम्नलिखित लेकिन यह काम करने के लिए प्रतीत नहीं होता:

  • export Module from './Module/Module;
+0

भी देखें [वहाँ है ES5 'module.exports = की आवश्यकता है ('./inner.js')'?] (http://stackoverflow.com/q/32229947/1048572) और [निर्यात 'के रूप में निर्यात {foo के रूप में ईएस 6 में कोई एक-लाइन एनालॉग है डिफ़ॉल्ट} 'वैध ES6?] (http://stackoverflow.com/q/33155785/1048572) – Bergi

उत्तर

61
export {default as Module} from './Module/Module'; 

मानक ES6 तरीका है, जब तक आपको निर्यात करने वाले मॉड्यूल के अंदर Module की आवश्यकता नहीं है।

export Module from './Module/Module; 

ऐसा करने का एक प्रस्तावित ESnext तरीका है, लेकिन यह केवल तभी काम करता है जब आपने इसे अब बेबेल में सक्षम किया हो।

+0

I टी बहुत अच्छा काम करता है, हालांकि, ऐसा लगता है कि वेबपैक इसे पसंद नहीं करता है, एक अधिसूचना दे रहा है कि 'घटक' अब केवल पढ़ने के लिए है और गर्म पुनः लोड करने में असमर्थ है। बहुत अजीब! – Detuned

+0

सही, यह स्वीकार्य उत्तर होना चाहिए। (यदि वेबपैक हॉट रीलोड पसंद नहीं करता है तो यह उस उपकरण में समस्या है या यह एचएमआर प्लगइन है।) – Benja

+6

यदि कोई सोच रहा है कि यह कौन सा बेबेल प्लगइन है, तो यह 'निर्यात-एक्सटेंशन' है - http://babeljs.io/docs/प्लगइन्स/ट्रांसफॉर्म-निर्यात-एक्सटेंशन/ – Noitidart

2

तो, मैं इस पाया है आसान संदर्भ देने के लिए components निर्देशिका की जड़ में एक index.js होने के तत्काल निर्यात कार्यक्षमता के लिए काफी अच्छी तरह से काम करने के लिए:

import Component from './Component/Component' 
import ComponentTwo from './ComponentTwo/ComponentTwo' 

module.exports = { 
    Component, 
    ComponentTwo 
}; 

आप module.exports उपयोग करने के लिए की जरूरत है।

+3

ध्यान रखें कि चूंकि यह आंशिक रूप से कॉमनजेएस मॉड्यूल है, यह केवल विशेष रूप से बेबेल में काम करेगा और यदि आप इसे वास्तविक ईएस 6 मॉड्यूल में उपयोग करने का प्रयास करेंगे तो एक बार उनके वातावरण में अधिक वातावरण में भूमि का समर्थन करने का प्रयास करें , और संभवतः बेबेल के भविष्य के संस्करणों में काम करना बंद कर देगा। – loganfsmyth

+0

सही। बेबेल 6 ब्रेक में कॉमनजेएस और ईएस 6 आयात/निर्यात को इंटरमलिंग करना। Babel5 ने इस गलत व्यवहार को अनुमति/प्रबलित किया। आपके उदाहरण में, 'घटक' अब आपके निर्यात किए गए घटक का संदर्भ नहीं रहेगा, बल्कि इसके बजाय एक घटक होगा, जिसमें आपके घटक संदर्भ 'Component.default' –

+0

पर रहते हैं, कोई भी जानता है कि' module.exports' का उपयोग किए बिना इसे कैसे किया जाए। ? मुझे घटक की एक गुच्छा को 'index.js' में पैकेजिंग करने की इस विधि को पसंद है लेकिन सिंटैक्स को समझ नहीं सकता है। 'एक्स' से एक्स आयात करें; 'वाई' से आयात वाई; निर्यात डिफ़ॉल्ट {x, y}; 'फिर' xy से आयात {x}; 'काम नहीं करता है (और मुझे पता नहीं लगाया जा सकता है क्यों नहीं) –

2

मैं क्यों नहीं पता है लेकिन सिर्फ यह मेरे लिए काम करता है:

index.jsx:

import Component from './Component'; 
import Component2 from './Component2'; 
import Component3 from './Component3'; 
import Component4 from './Component4'; 

export {Component, Component2, Component3, Component4}; 

मैं इस तरह निर्यात आयात:

import {Component, Component2, Component3, Component4} from '../componets/index'; 
संबंधित मुद्दे