/ / ES6 मॉड्यूल में कई कक्षाएं निर्यात करें - जावास्क्रिप्ट, मॉड्यूल, निर्यात, एक्मास्क्रिप्ट -6, बैबेल

ES6 मॉड्यूल में एकाधिक कक्षाएं निर्यात करें - जावास्क्रिप्ट, मॉड्यूल, निर्यात, ecmascript-6, बेबेल

मैं एक ऐसा मॉड्यूल बनाने की कोशिश कर रहा हूं जो कई ES6 कक्षाओं का निर्यात करता है। मान लीजिए कि मेरे पास निम्नलिखित निर्देशिका संरचना है:

my/
└── module/
├── Foo.js
├── Bar.js
└── index.js

Foo.js तथा Bar.js प्रत्येक डिफ़ॉल्ट ES6 वर्ग निर्यात करता है:

// Foo.js
export default class Foo {
// class definition
}

// Bar.js
export default class Bar {
// class definition
}

वर्तमान में मेरे पास है index.js इस तरह सेट करें:

import Foo from "./Foo";
import Bar from "./Bar";

export default {
Foo,
Bar,
}

हालांकि, मैं आयात करने में असमर्थ हूं। मैं यह करने में सक्षम होना चाहता हूं, लेकिन कक्षाएं "नहीं मिलीं:"

import {Foo, Bar} from "my/module";

ES6 मॉड्यूल में कई वर्गों को निर्यात करने का सही तरीका क्या है?

उत्तर:

उत्तर № 1 के लिए 114

इसे अपने कोड में आज़माएं:

import Foo from "./Foo";
import Bar from "./Bar";

export { // without default
Foo,
Bar,
}

Btw, आप इसे इस तरह भी कर सकते हैं:

//bundle.js
export Foo from "./Foo"
export Bar from "./Bar"

//and import somewhere..
import { Foo, Bar } from "./bundle"

का उपयोग करते हुए export

export const MyFunction = () => {}
export const MyFunction2 = () => {}

const Var = 1;
const Var2 = 2;
export {
Var, Var2
}


// Then import it this way
import {MyFunction, MyFunction2, Var, Var2 } from "./foo-bar-baz";

अंतर export default

यह है कि आप कुछ निर्यात कर सकते हैं, और उस नाम को लागू कर सकते हैं जहां आप इसे आयात करते हैं

// export default
const Func = () {}
export default Func;

// import it
import Foo from "./func"

जवाब के लिए 10 № 2

उम्मीद है की यह मदद करेगा:

// Export (file name: my-functions.js)
export const MyFunction1 = () => {}
export const MyFunction2 = () => {}
export const MyFunction3 = () => {}

// Import
import * as myFns from "./my-functions";

myFns.MyFunction1();
myFns.MyFunction2();
myFns.MyFunction3();


// OR Import it as Destructured
import { MyFunction1, MyFunction2 } from "./my-functions";

// AND you can use it like below with brackets (Parentheses) if it"s a function
// AND without brackets if it"s not function (eg. variables, Objects or Arrays)
MyFunction1();
MyFunction2();

जवाब के लिए 2 № 3

@webdeb का जवाब मेरे लिए नहीं था, मैंने एक काम किया unexpected token त्रुटि जब ES6 को Babel के साथ संकलित किया गया, तो डिफ़ॉल्ट निर्यात नाम दिया गया।

हालांकि, मेरे लिए यह काम किया:

// Foo.js
export default Foo
...

// bundle.js
export { default as Foo } from "./Foo"
export { default as Bar } from "./Bar"
...

// and import somewhere..
import { Foo, Bar } from "./bundle"

जवाब के लिए 0 № 4

वर्गों के उदाहरणों के निर्यात के लिए आप इस वाक्यविन्यास का उपयोग कर सकते हैं:

// export index.js
const Foo = require("./my/module/foo");
const Bar = require("./my/module/bar");

module.exports = {
Foo : new Foo(),
Bar : new Bar()
};

// import and run method
const {Foo,Bar} = require("module_name");
Foo.test();