"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > \"मॉड्यूल बनाम मेन: द मॉडर्न हीरो बनाम द विंटेज लेजेंड ऑफ़ package.json!\"

\"मॉड्यूल बनाम मेन: द मॉडर्न हीरो बनाम द विंटेज लेजेंड ऑफ़ package.json!\"

2024-11-07 को प्रकाशित
ब्राउज़ करें:888

\

मॉड्यूल फ़ील्ड क्या है?

package.json में मॉड्यूल फ़ील्ड ESM (ES6 मॉड्यूल) के लिए प्रवेश बिंदु निर्दिष्ट करता है। मुख्य फ़ील्ड के विपरीत, जो CommonJS मॉड्यूल (आवश्यकता()) के लिए डिज़ाइन किया गया है, मॉड्यूल का उपयोग उन वातावरणों को लक्षित करने के लिए किया जाता है जो नए ESM मानक का समर्थन करते हैं, जैसे जावास्क्रिप्ट बंडलर (वेबपैक, रोलअप) और आयात सिंटैक्स का उपयोग करने वाले ब्राउज़र।

मॉड्यूल महत्वपूर्ण क्यों है?

मॉड्यूल फ़ील्ड इसलिए आया क्योंकि वेबपैक और रोलअप जैसे जावास्क्रिप्ट बंडलर उन पैकेजों को अनुकूलित करना चाहते थे जो ESM प्रारूप का उपयोग करते हैं। ईएसएम में ट्री-शेकिंग (अप्रयुक्त कोड को हटाना) और स्थैतिक विश्लेषण (निर्भरता का अधिक कुशलता से विश्लेषण करना) जैसे लाभ हैं। मॉड्यूल फ़ील्ड बंडलर्स को बताता है कि पैकेज का ईएसएम संस्करण कहाँ स्थित है, जिससे उन्हें ये अनुकूलन करने की अनुमति मिलती है।

यह मुख्य से किस प्रकार भिन्न है:

  • Main, Node.js द्वारा require() के साथ उपयोग किए जाने वाले CommonJS (पुराने प्रारूप) के लिए है।
  • मॉड्यूल ईएसएम (आधुनिक प्रारूप) के लिए है जो बंडलर्स और वातावरणों द्वारा उपयोग किया जाता है जो आयात सिंटैक्स का समर्थन करते हैं।

उदाहरण:

यदि आप ऐसे पैकेज की शिपिंग कर रहे हैं जो कॉमनजेएस और ईएसएम दोनों का समर्थन करता है, तो आप मुख्य और मॉड्यूल दोनों का उपयोग कर सकते हैं:

{
  "name": "my-package",
  "version": "1.0.0",
  "main": "index.js",  // Entry for CommonJS (Node.js)
  "module": "esm/index.js"  // Entry for ESM (Bundlers, Modern Environments)
}

मॉड्यूल का उपयोग कब किया जाता है?

  • बंडलर्स: जब वेबपैक, रोलअप, या पार्सल जैसे टूल आपके कोड को बंडल करते हैं, तो वे आपके पैकेज के ईएसएम संस्करण का उपयोग करने के लिए मॉड्यूल फ़ील्ड की तलाश करते हैं, जिसे कॉमनजेएस से बेहतर अनुकूलित किया जा सकता है।
  • आधुनिक वातावरण: ब्राउज़र और अन्य वातावरण जो मूल आयात सिंटैक्स का समर्थन करते हैं, वे मॉड्यूल फ़ील्ड को भी संदर्भित कर सकते हैं।

सिर्फ मुख्य का उपयोग क्यों न करें?

  • Main Node.js और CommonJS सिस्टम के साथ बैकवर्ड संगतता के लिए है। Node.js मॉड्यूल फ़ील्ड का उपयोग नहीं करता है; यह require() के लिए मुख्य पर निर्भर करता है।
  • मॉड्यूल विशेष रूप से आधुनिक ईएसएम सिस्टम के लिए है, और बंडलर आयात को अनुकूलित करने के लिए यही तलाशते हैं।

उदाहरण टूटना:

{
  "main": "index.js",   // Entry point for CommonJS, Node.js uses this
  "module": "esm/index.js"  // Entry point for ES modules, bundlers use this
}
  • यदि कोई require('my-package') का उपयोग करता है, तो Node.js Index.js (CommonJS) लोड करेगा।
  • यदि कोई आयात 'माय-पैकेज' का उपयोग करता है, तो एक बंडलर esm/index.js (ESM) को देखेगा।

ध्यान देने योग्य महत्वपूर्ण:

  • Node.js मूल रूप से मॉड्यूल फ़ील्ड का उपयोग नहीं करता है (यह केवल बैकवर्ड संगतता के लिए मुख्य का उपयोग करता है)।
  • जावास्क्रिप्ट बंडलर मॉड्यूल पसंद करते हैं क्योंकि यह आपके पैकेज के ईएस मॉड्यूल संस्करणों की ओर इशारा करता है।

सारांश:

  • Node.js (CommonJS) के लिए मुख्य का उपयोग करें।
  • आधुनिक जावास्क्रिप्ट वातावरण (ईएसएम) और बंडलर्स के लिए मॉड्यूल का उपयोग करें।
  • यदि आप दोनों का समर्थन करना चाहते हैं, तो अपने package.json में दोनों फ़ील्ड शामिल करें।

क्या यह मॉड्यूल फ़ील्ड के बारे में आपके भ्रम को दूर करने में मदद करता है?

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/rameshpvr/module-vs-main-the-modern-hero-vs-the-vintage-legend-of-packagejson-g5e?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163 .comडिलीट से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3