import - ES6 में आयातित ऑब्जेक्ट को कैसे निर्यात करें?




3 Answers

मैं अक्सर index.js फ़ाइलों में निम्न कार्य करता हूं जो कई फाइलें लिखते हैं:

export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';

यह ब्लॉग एंट्री कुछ अच्छे अतिरिक्त उदाहरण प्रदान करता है।

महत्वपूर्ण लेख

इन निर्यातित आयातों तक पहुंचने पर आपको इस eslint-rule अवगत होना चाहिए। असल में, एक और फाइल में, आपको यह नहीं करना चाहिए:

import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error

तुम्हें यह करना चाहिए:

import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok

उपयोग का मामला सरल है: मैं सिर्फ एक ऑब्जेक्ट को नाम के साथ निर्यात करना चाहता हूं जैसे इसे आयात किया गया था।

उदाहरण के लिए:

import React from 'react';
export React;

लेकिन यह काम नहीं करता है। मुझे लिखना है:

import React from 'react';
export const React = React;

लेकिन यह अजीब है। ऐसा करने का सही तरीका क्या है?

अद्यतन :

मदद और संदर्भ के लिए धन्यवाद। मैंने कई सुरागों के साथ अपनी समस्या हल कर दी है। मैं अपने और समाधान के लिए कुछ आम मामलों को साझा करना चाहता हूं।

निर्यात आयात

import d, {obj} from '...';

export {obj, d};
export {obj as name1, d as name2};

सभी नामित आयात पुनः निर्यात करें

export * from '...';
export * as name1 from '...';

कुछ नामित आयात पुनः निर्यात करें

export {a, b as name1} from '...';

डिफ़ॉल्ट निर्यात के रूप में डिफ़ॉल्ट आयात फिर से निर्यात करें

export {default} from '...';

नाम निर्यात के रूप में डिफ़ॉल्ट आयात फिर से निर्यात करें

export {default as name1} from '...';



आपको export {React} करने में सक्षम होना चाहिए और इसे import {React} from ./module से import {React} from ./module माध्यम से import {React} from ./module

अधिक जानकारी के लिए https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export देखें।




मेरे उपयोग के मामले में, मुझे स्पष्ट रूप से कुछ प्रकार के स्पष्ट आयात विवरण की आवश्यकता है ताकि बेबेल मेरे ईएस 7 कोड को ईएस 5 में पार कर सके।

निम्नलिखित परिणामों में त्रुटि हुई है You gave us a visitor for the node type "ForAwaitStatement" but it's not a valid type :

require( 'babel-core/register' ); //transpiles es7 to es5
export {default} from './module_name'

मेरा समाधान require() का उपयोग कर मॉड्यूल को स्पष्ट रूप से आयात करना था:

require( 'babel-core/register' );
export default require( './module_name' ).default;



Related

import export ecmascript-6