मैं निम्नलिखित वर्ग निर्यात कर रहा हूँ:

export default class Tester {
}

समस्या यह है कि जब मैं इसे ट्रांसपाइल करता हूं और इसके साथ आयात करता हूं:

const Tester = require('./dist/Tester');

समस्या यह है कि परीक्षक वर्ग का उपयोग करने के लिए मुझे इसे इस तरह उपयोग करने की आवश्यकता है:

const example = new Tester.Tester();

मैं इसे कैसे निर्यात कर सकता हूं इसलिए मैं करता हूं:

const example = new Tester();
0
johnnyshrewd 29 फरवरी 2020, 16:21
आप किस नोड का उपयोग कर रहे हैं? क्या आप नोड साइड पर बेबेल को ट्रांसपाइल करने के लिए उपयोग कर रहे हैं, या आप नोड में देशी ईजेएस समर्थन का उपयोग कर रहे हैं?
 – 
Joe
29 फरवरी 2020, 16:48

2 जवाब

आप ऑब्जेक्ट डिस्ट्रक्टिंग का उपयोग करने के लिए आयात ब्लॉक में संशोधन करने का प्रयास कर सकते हैं:

const { Tester } = require('./dist/Tester');
0
kaleidawave 29 फरवरी 2020, 16:45

अजीब सिंटैक्स वास्तव में आपके द्वारा 2 अलग-अलग आयात/निर्यात बोली, es6 और कॉमनज का उपयोग करने के कारण होता है। बैबेल ट्रांसपिलेशन आपको एक ही सिस्टम में दोनों का उपयोग करने में सक्षम बनाता है।

ES6 . में

  • निर्यात export के साथ लिखा जाता है
  • आयात import के साथ लिखा जाता है

उदाहरण:

// -- es6

// tester.js

export default class Tester {}  // default export
export const SomeConsts = {}    // named export

// main.js

import Tester, { SomeConsts } from "./tester";

नोडज में कॉमनज का कार्यान्वयन

  • निर्यात module.exports के साथ लिखा जाता है
  • आयात require() के साथ लिखा जाता है

उदाहरण:

// -- commonjs

// tester.js

class Tester {}
const SomeConsts = {}

module.exports = { Tester, SomeConsts }  // arbitrary export

// main.js

const TesterModule = require("./tester.js");
const Tester = TesterModule.Tester;
const SomeConsts = TesterModule.SomeConsts;

// --or--

const { Tester, SomeConsts } = require("./tester.js");

संपादित करें :

अगर आप चाहते हैं कि Tester क्लास एक्सपोर्ट का रूट बने और फिर भी एक्सपोर्ट SomeConsts करना चाहते हैं, तो आपको SomeConsts को Tester क्लास का हिस्सा बनाना होगा।

// -- commonjs

// tester.js
class Tester {
  static SomeConsts = {}
}

module.exports = {}

// main.js

const Tester = require("./tester.js")
const TesterInstance = new Tester():
1
Alan Darmasaputra 1 मार्च 2020, 06:45
मैं देखता हूं, लेकिन मान लीजिए कि मेरे पास index.js फ़ाइल है जो परीक्षक और कुछ कॉन्स्ट्स निर्यात करती है। क्या परीक्षक को "डिफ़ॉल्ट" निर्यात करने का कोई तरीका है, इसलिए जब मुझे इसकी आवश्यकता होती है तो मैं const TesterModule = आवश्यकता ("./tester.js"); कॉन्स्ट एक्स = नया टेस्टर मॉड्यूल ();
 – 
johnnyshrewd
1 मार्च 2020, 04:06
आप केवल 1 रूट ऑब्जेक्ट को मॉड्यूल.एक्सपोर्ट में निर्यात कर सकते हैं। अगर आप कुछ कॉन्स्ट्स को संरक्षित करना चाहते हैं तो आपको इसे टेस्टर का हिस्सा बनाना होगा। ``` // tester.js वर्ग परीक्षक {स्थिर कुछ कॉन्स्ट्स = {}} मॉड्यूल। निर्यात = परीक्षक // main.js const परीक्षक = आवश्यकता ("./tester.js") const TesterInstance = नया परीक्षक () ```
 – 
Alan Darmasaputra
1 मार्च 2020, 06:41