जैसा कि आपने शायद पाया, एनपीएम वास्तव में विशेष रूप से यह नहीं बताता है कि वहां क्या होना चाहिए, बल्कि उनके पास अनदेखा-डिफ़ॉल्ट फ़ाइलों की एक सूची है । बहुत से लोग इसका उपयोग भी नहीं करते हैं क्योंकि यदि आपके पास मौजूद नहीं है तो डिफ़ॉल्ट रूप से .gitignoreइसे अनदेखा कर दिया npmजाता .npmignoreहै। इसके अतिरिक्त, कई फाइलें सेटिंग्स की परवाह किए बिना पहले से ही नजरअंदाज कर दी जाती हैं और कुछ फाइलों को हमेशा नजरअंदाज किए जाने से बाहर रखा जाता है, जैसा कि ऊपर दिए गए लिंक में बताया गया है।
हमेशा क्या होना चाहिए, इस पर बहुत अधिक आधिकारिक नहीं है क्योंकि यह मूल रूप से एक सबसेट है .gitignore, लेकिन मैं 5-ईश वर्षों के लिए नोड का उपयोग करने से क्या इकट्ठा करता हूं, यहां मैं क्या कर रहा हूं।
नोट: उत्पादन से मेरा मतलब है कि किसी भी समय आपके मॉड्यूल का उपयोग किसी व्यक्ति द्वारा किया जाता है न कि स्वयं मॉड्यूल पर विकसित करने के लिए।
क्रॉस-संकलित स्रोतों को पूर्व-रिलीज़ करें
- पेशेवरों : यदि आप जावास्क्रिप्ट में क्रॉस-कंपाइल करने वाली भाषा का उपयोग कर रहे हैं, तो आप रिलीज़ से पहले precompile कर सकते हैं और
.coffeeअपने पैकेज में फ़ाइलों को शामिल नहीं कर सकते हैं लेकिन उन्हें अपने गिट रिपॉजिटरी में ट्रैक करते रहें।
फ़ाइल बचे हुए बनाएँ
- पेशेवरों : ऐसी चीजों का उपयोग करने वाले लोगों के
node-gypपास ऑब्जेक्ट फाइलें हो सकती हैं जो एक निर्माण के दौरान उत्पन्न होती हैं जिन्हें कभी भी पैकेज में नहीं जाना चाहिए।
- विपक्ष : यह हमेशा
.gitignoreवैसे भी जाना चाहिए । यदि आप एक .npmignoreफाइल का उपयोग कर रहे हैं तो आपको इन चीजों को यहाँ रखना होगा क्योंकि यह .gitignorenpm के दृष्टिकोण से ओवरराइड करता है।
टेस्ट
- पेशेवरों : अपने उत्पादन कोड में कम सामान।
- विपक्ष : आप लाइव वातावरण पर परीक्षण नहीं चला सकते हैं स्लिम मौका में एक सिस्टम-विशिष्ट विफलता है, जैसे नोड के चल रहे संस्करण के बाहर एक परीक्षण विफल होने का कारण बनता है।
सतत एकीकरण सेटिंग्स / मेटा फ़ाइलें
- पेशेवरों : फिर से, कम सामान।
.travis.ymlकोड का उपयोग, परीक्षण या देखने के लिए आवश्यक चीजें जैसे कि ।
गैर-रीडमी डॉक्स और कोड उदाहरण
- पेशेवरों : कम सामान। कुछ लोग स्कूल-ऑफ़-थिंक में मौजूद होते हैं जहाँ अगर आप अपने रीडमे में कम से कम न्यूनतम व्यवहार्य कार्यक्षमता व्यक्त नहीं कर सकते हैं, तो आपका मॉड्यूल बहुत बड़ा है।
- विपक्ष : लोग अपने स्वयं के फ़ाइल सिस्टम पर संपूर्ण दस्तावेज़ और कोड उदाहरण नहीं देख सकते हैं। उन्हें रिपॉजिटरी (जिसमें इंटरनेट कनेक्शन की भी आवश्यकता होती है) पर जाना होगा।
गितुब-पृष्ठ वस्तु
- पेशेवरों : यदि आप अपने मॉड्यूल का उपयोग करते हैं तो आपको निश्चित रूप से अपनी रिलीज़ को
CNAMEफ़ाइलों या प्लेसहोल्डर के साथ लिटाने की ज़रूरत नहीं है, index.htmlयदि आप एक gh-pagesरिपॉजिटरी के रूप में डबल-ड्यूटी का काम करते हैं ।
bower.json और दोस्त
- पेशेवरों : यदि आप रिलीज से पहले अपनी निर्भरता में निर्माण करने का निर्णय लेते हैं, तो आपको बोवर स्थापित करने के लिए अंतिम-उपयोगकर्ता की आवश्यकता नहीं है, फिर उसके साथ और चीजें स्थापित करें। मैं व्यक्तिगत रूप से उस सामान को पैकेज में रखूंगा। जब मैं
npm installए करता हूं, मुझे केवल एनपीएम पर भरोसा करना चाहिए और कोई अन्य बाहरी स्रोत नहीं होना चाहिए।
मूल रूप से, आपको कभी भी इसका उपयोग करना चाहिए यदि कोई ऐसी चीज है जिसे आप अपने npm पैकेज से बाहर रखना चाहते हैं, लेकिन अपने npm रिपॉजिटरी से बाहर नहीं। यह वस्तुओं की एक लंबी सूची नहीं है, लेकिन npm कार्यक्षमता में निर्माण करेगा, न कि लोगों को अपने पैकेज में अप्रासंगिक वस्तुओं के साथ फंसने से।
npm install yourlibraryउदाहरण के लिए.travis.ymlऔर उदाहरण के लिए.jshintrc