2016-04-05 5 views
7

एनपीएम के माध्यम से कुछ भी इंस्टॉल करते समय, यह दर्जनों आवश्यक फाइलों को डाउनलोड नहीं करता है। आम तौर पर मैं लाइब्रेरी फाइनल बिल्ड, *.min.js फ़ाइल या उसके जैसा कुछ भी ढूंढ रहा हूं लेकिन शेष बेकार है।एनपीएम ओवरहेड - इसे कैसे संभालें?

आप इन सभी बेकार फ़ाइलों को कैसे संभालेंगे? क्या आप उन्हें gulp या grunt जैसे किसी भी निर्माण उपकरण के साथ हाथ से हटाते हैं या अंतिम ऐप उत्पन्न करते हैं?

मैं काफी उलझन में हूं क्योंकि मेरे पास मेरे वेबपैप में बहुत सारे एनपीएम मॉड्यूल स्थापित हैं और फ़ोल्डर का आकार लगभग 50 मेगाबाइट है लेकिन यह केवल 2 एमबी हो सकता है।

+0

मैं कहूंगा कि आप सामान स्थापित करने के लिए एनपीएम का उपयोग कर रहे हैं, तो आप गल्प का उपयोग करके बेहतर हैं। इस तरह, आपके अंतिम निर्माण में केवल वही होना चाहिए जो इसकी आवश्यकता है। – Toby

+0

मुद्दा एनपीएम नहीं है। यह लाइब्रेरी डेवलपर्स है जिसमें उनके निर्माण में अनावश्यक कचरा शामिल है, कभी-कभी एनपीएम कैसे काम करता है, इसकी खराब समझ के कारण। यदि आप इनमें से किसी एक पुस्तकालय का उपयोग करते हैं, तो आपको सभी निर्भरताओं को भी डाउनलोड करना होगा। –

+0

@ GOTO0 यह बुरा है। उदाहरण के लिए लोडाश, एक फ़ोल्डर में 564 फाइलें हैं – Tukkan

उत्तर

1

प्रबंध संकुल

सामने के छोर गैर विकास संकुल मैं Bower पसंद करते हैं के लिए। यह आपके संकुल के minified और गैर-minified संस्करण को बनाए रखता है।

उपकरण

उपयोग या तो Gulp या Grunt बनाएँ। Gulp पसंद का मेरा उपकरण होगा।

Gulp काम है कि बहुत अपने कोड में सुधार होगा हैं:

  • दोनों सीएसएस के minification और जे एस
  • अनुकूलन/छवियों के संपीड़न
  • संयोजन और कैशिंग सर्वर
  • उन कॉल्स की संख्या कम करने के लिए
  • पैकेज संस्करण
  • परियोजना निर्भरताओं के स्वचालित इंजेक्शन
  • स्वत: इंजेक्शन बाहरी निर्भरता
  • js की स्थिर विश्लेषण और सीएसएस
  • स्वत: बनाता है पर कोड में परिवर्तन
  • तैनाती
  • परीक्षण

नोड

आप, नोड के लिए छोड़ सकते हैं अपने सभी विकास उपकरण और अपने सभी रिलीज प्लगइन को उबालने के लिए छोड़ दें। रिलीज़ किए गए ऐप्स में उपयोग किए जाने वाले अधिकांश नोड पैकेजों में बॉवर इंस्टॉलेशन समकक्ष होता है।

संपादित


नोड से कुछ भी हटाने के लिए मैन्युअल रूप से के रूप में आप जो संकुल निर्भरता के रूप में अन्य संकुल है पता नहीं है मत करो। यदि आप डरते हैं कि आपके पास जंक हो सकता है, तो node_modules फ़ोल्डर को हटाने के लिए npm rimraf का उपयोग करें, और उसके बाद npm इंस्टॉल करें। अनावश्यक सहेजे गए पैकेजों के लिए सबसे महत्वपूर्ण रूप से अपने पैकेज.जेसन की जांच करें।

+0

मैं लॉनाश के साथ अपने उदाहरण के साथ रहूंगा - बॉवर ने सैकड़ों फाइलें भी इंस्टॉल की हैं, एनपीएम की तरह ही, लेकिन अन्य फिएल स्ट्रक्चर के साथ। – Tukkan

+1

@ तुककान, आपको अपने देव पर्यावरण में मौजूद फाइलों की संख्या के बारे में चिंता करने की ज़रूरत नहीं है। आप गुलप या ग्रंट का उपयोग कर रहे हैं? फिर wiredep का उपयोग करें और अपने depencies स्वचालित रूप से प्रबंधित करने के लिए इंजेक्ट करें –

3

npm install --production

बस एक NPM कर स्थापित दोनों के विकास और क्रम निर्भरता में लाता है।आप सर्वर के लिए विश्व स्तर पर उत्पादन के लिए ENV भी सेट कर सकते हैं: npm config set production

this गीथब मुद्दे देखें। ध्यान दें कि इससे आपको केवल सब कुछ का अंतिम छोटा निर्माण नहीं मिलेगा, लेकिन ब्लोट को बहुत कम कर देगा। उदाहरण के लिए, एक लाइब्रेरी बेबेल-क्ली, बेबेल-प्रीसेट-एएस2015, और uglifyjs को बनने के लिए भरोसा कर सकती है (devDependency), लेकिन इसमें किसी भी की आवश्यकता नहीं है यदि इसमें ट्रांसप्राइज्ड मिनीफाइड फ़ाइल भी शामिल है।