2014-06-29 14 views
8

मैं कुछ मॉड्यूल को पैकेज करने की कोशिश कर रहा हूं जिन पर मैं काम कर रहा हूं। मेरे पास पांच मॉड्यूल हैं, जो पांच फाइलों में विभाजित हैं। उनमें से चार वास्तविक बाहरी पक्ष के मॉड्यूल हैं जिन्हें मैं उपयोगकर्ता को स्थापित करने में सक्षम होना चाहता हूं। दूसरा एक समर्थन मॉड्यूल है कि उन्हें सभी को सही तरीके से कार्य करने की आवश्यकता है। वे सभी एक ही निर्देशिका में संग्रहीत हैं। मैं प्रत्येक निर्देशिका में एक अलग मॉड्यूल के रूप में निर्दिष्ट करने में सक्षम होना चाहता हूं। लेकिन जहां तक ​​मैं कह सकता हूं, कोई केवल package.json में एक मॉड्यूल को परिभाषित कर सकता है।उसी पैकेज में एकाधिक मॉड्यूल को नोट करना। जेसन फ़ाइल

क्या कई मॉड्यूल निर्दिष्ट करने का कोई तरीका है? यदि नहीं, तो इसका मतलब है कि यह एक बुरा अभ्यास होना चाहिए। मुझे अपने मॉड्यूल के निर्यात को एक मुख्य मॉड्यूल में स्थानांतरित करने के लिए कैसे संरचना करनी चाहिए?

+0

क्यों न सिर्फ उन सब को अलग मॉड्यूल के रूप प्रकाशित: आप पहले से ही नहीं देखा है अगर वहाँ एक जोड़े अच्छा writeups नोड संकुल यहां के विकास में मदद करने के लिए है? आप कभी नहीं जानते कि समुदाय उनका उपयोग कैसे करेगा, और वे उपयोग करने के लिए 5 में से 1 में से एक चुन सकते हैं। – dylants

+0

@dylants लेकिन मैं यह कैसे कर सकता हूं? एकमात्र तरीका जिसे मैं पा सकता था उन्हें प्रत्येक को एक अलग निर्देशिका में रखना था। –

+0

हां, प्रत्येक को अलग निर्देशिका में रहने की आवश्यकता होगी, संभवतः आपकी निर्देशिका संरचना के भीतर समान स्तर पर। जब किसी को दूसरे की आवश्यकता होती है, तो आप इसे इसकी निर्भरताओं में जोड़ते हैं और इसे 'npm इंस्टॉल' करते हैं। प्रत्येक में इसका अपना स्रोत कोड, परीक्षण कोड और 'package.json' फ़ाइल होती है। – dylants

उत्तर

6

वर्तमान में प्रत्येक मॉड्यूल के लिए एक अलग package.json फ़ाइल रखने का एक समर्थित तरीका नहीं है जिसे आप उसी निर्देशिका में प्रकाशित कर सकते हैं। और वास्तव में, यह समझ में आता है, क्योंकि आपके द्वारा तैनात प्रत्येक पैकेज में समस्याएं, फीचर अनुरोध, बग इत्यादि हो सकती हैं जिन्हें अलग से संभालने की आवश्यकता होती है और दूसरों के अपडेट को मजबूर नहीं किया जाता है। इन्हें अलग करने से आप प्रत्येक स्वतंत्र रूप से रखरखाव पर ध्यान केंद्रित कर सकते हैं, और इन मॉड्यूल के उपभोक्ताओं को अलग-अलग शामिल करने की अनुमति भी दे सकते हैं। बहुत से बड़े पैमाने पर प्रोजेक्ट जिन्होंने कुछ ऐसा बनाकर शुरू किया है, वे सोचते हैं कि लोग पसंद करेंगे, इस बात को समाप्त करने के लिए कि वास्तव में हर कोई यादृच्छिक सब-प्रोजेक्ट होता है जिसे अलग से बनाया गया था।

तो अलग निर्देशिकाएं, और package.json फ़ाइलों को अलग करें, फिर प्रत्येक के लिए package.json के भीतर निर्भरताएं शामिल करें।
https://www.npmjs.org/doc/misc/npm-developers.html
https://www.npmjs.org/doc/files/package.json.html

+0

जब मेरे उप-मॉड्यूल मुख्य मॉड्यूल की आवश्यकता होती है, तो वे किस पथ का उपयोग करते हैं? मान लीजिए कि मैं एक ही स्तर की निर्देशिकाओं में प्रत्येक (मुख्य एक सहित) डालता हूं, मुझे नहीं पता कि दूसरों का संदर्भ कैसे दिया जाए। पैकेज फ़ाइलों को बनाने के बाद क्या नाम सिर्फ काम करेगा? –

+0

यदि वे वास्तव में स्वतंत्र मॉड्यूल हैं जिन्हें आपने एनपीएम पर तैनात किया है, तो आप उन्हें फ़ाइल पथ के बिना संदर्भित करेंगे। तो अगर आपके पास "भयानक-मॉड्यूल" कहा जाता है तो आप 'आवश्यकता (' कमाल-मॉड्यूल ') कहेंगे। इसका मतलब यह है कि कोड को ठीक से काम करने के लिए इसे आवश्यक होने से पहले आपको प्रत्येक मॉड्यूल को पहले 'एनपीएम प्रकाशित' करना होगा। लेकिन अगर आप उन्हें दस्तावेज करते हैं और बताते हैं कि प्रत्येक क्या करता है, तो दूसरों को आपके काम से भी फायदा हो सकता है। – dylants

+0

जैसे ही आप इन मॉड्यूल को प्रकाशित करते हैं, अपने पैकेज संस्करणों के लिए [semver] (https://www.npmjs.org/doc/semver.html) नोटेशन को ध्यान में रखें। – dylants

संबंधित मुद्दे