javascript - जावास्क्रिप्ट निर्भरता प्रबंधन: एनपीएम बनाम बॉवर बनाम वोल्




node.js npm (4)

आप npm , bower और volo तुलना कैसे करते हैं?

यूआई प्रोजेक्ट के लिए जावास्क्रिप्ट निर्भरताओं को स्थापित करने के लिए इन तीनों का उपयोग किया जा सकता है। मैं समझता हूं कि npm अधिक नोड विशिष्ट है।

तो, कब उपयोग करें?

npm अभी भी दूर खड़ा है, लेकिन bower और volo बिल्कुल एक ही समस्या को हल करने लगते हैं, हालांकि मैं npm और bower-volo बीच एक रेखा खींचने में सक्षम नहीं हूं।


कुंज

यह अभी भी फ्रंट एंड डेवलपर्स के बीच बहुत लोकप्रिय है, भले ही इसमें बहुत कम सुविधाएं हों। प्रत्येक फ्रंट एंड पैकेज इसका उपयोग कर रहा है। बीओआर में एनओएम में विलय करने की पहल भी है।

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

आप बॉवर रजिस्ट्री ( bower search <some keyword> ) में फ्रंट-एंड से संबंधित कुछ भी ढूंढने की उम्मीद कर सकते हैं - मेरी राय में, यह अन्य पैकेज प्रबंधकों के संबंध में बोवर का सबसे बड़ा फायदा है।

volo

मैंने अभी भी वर्षों में 5 मिनट से अधिक समय तक इसका उपयोग नहीं किया है। इसके बारे में नहीं पता, लेकिन जो कुछ मैं देख सकता हूं उससे इसमें कुछ बिल्ड टूल शामिल हैं, जो उपयोगकर्ताओं को ग्रंट करने के लिए बहुत परिचित हैं।

NPM

हां, एनपीएम नोड पैकेज मैनेजर के लिए खड़ा है। लेकिन आजकल आप इसे सब कुछ के लिए उपयोग कर सकते हैं; लोग अब केवल npm install चीजों को npm install रहे हैं और उन्हें नोड पर्यावरण में ही काम करने की उम्मीद कर रहे हैं। उदाहरण के लिए, ट्विटर बूटस्ट्रैप के लिए कई एनपीएम पैकेज हैं

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

एनपीएम @ 3 के साथ, आपकी नोड_मोड्यूल निर्देशिका बहुत चापलूसी होगी। आपकी सभी निर्भरताएं और आपकी अधिकांश निर्भरताएं (और (उप) + निर्भरताएं) शीर्ष स्तर पर एक-दूसरे के बगल में बैठे रहेंगी। केवल तभी जब संघर्ष होते हैं तो मॉड्यूल गहरे स्तर पर स्थापित किए जाएंगे। इससे विंडोज उपयोगकर्ताओं के लिए चीजों को बहुत आसान बनाना चाहिए।

एनपीएम का उपयोग करने पर मुझे कुछ फायदे दिखाई देते हैं:

  • इसका उपयोग अन्य सभी पैकेज प्रबंधकों (घटक, बोवर, वोल्, जेएसपीएम, आदि) द्वारा किया जाता है;
  • बिल्ड स्क्रिप्ट का उपयोग करने की अनुमति देता है;
  • आत्मनिरीक्षण एनपीएम-आधारित पैकेजों के लिए बहुत सारे टूल उपलब्ध हैं

एनपीएम जावास्क्रिप्ट के लिए पैकेज प्रबंधक है।

2013 के फरवरी तक, मेरी राय निम्नलिखित थी। कृपया इसे अभी ध्यान में न लें।

NPM

जब आप नोड प्रोजेक्ट के साथ हों तो इसके साथ रहना बेहतर होगा, ब्राउज़र में भी बहुत कम परियोजनाएं उपलब्ध हैं ...

कुंज

बोवर अभी पॉप लड़का है। उनके पास उनके हुड के तहत बहुत सारी परियोजनाएं हैं, और परियोजना रखरखावकर्ता उन्हें बॉवर रजिस्ट्री में अद्यतित रखना चाहते हैं ...

यह एक शर्म की बात है कि वह कभी-कभी छोटी छोटी गाड़ी होती है।

volo

मैंने तब से 5 मिनट से अधिक समय तक वोल्मो की कोशिश नहीं की है, लेकिन जो मैं देख सकता था उससे यह बोवर की तुलना में अधिक लचीला दिखता है।

वोल्वो के लिए एक नकारात्मक बिंदु यह है कि उनकी परियोजनाएं बहुत पुरानी हैं।


एक विवरण जो एनपीएम और बॉवर के बीच अंतर का सबसे अच्छा वर्णन करता है: npm संकुल नामक जावास्क्रिप्ट मॉड्यूल प्रबंधित करता है और बॉवर फ्रंट-एंड घटकों (यानी सीएसएस, एचटीएमएल, और जावास्क्रिप्ट) को घटकों को बुलाता है। एनपीएम भी बोअर स्थापित करने के लिए प्रयोग किया जाता है। यहां एनपीएम और बॉवर पर एक विशाल लेख है (वोलो कवर नहीं करता है) यह बहुत विस्तार से जाता है।


मुझे पता है कि यह सवाल के दायरे में नहीं है लेकिन एक और विकल्प भी है। जाम जेएस - http://jamjs.org/ दिलचस्प बात यह है कि इसमें जाम में गड़बड़ी की क्षमता है:

jam compile output.js

किसी को अभी तक एक और पैकेज प्रबंधक बनाना चाहिए और इसे नाम देना चाहिए: yapm :)


वे एक ही समस्या को हल करने लगते हैं लेकिन विभिन्न वातावरण / दुनिया के लिए। नोडजे और वोल्वो के लिए एनपीएम, ब्राउज़र के लिए बोअर।

सच्चाई यह है कि आप ब्राउज़र के लिए जावास्क्रिप्ट और सीएसएस प्रबंधित करने के लिए एनपीएम का भी उपयोग कर सकते हैं। ऐसा करने से आपको कुछ भी नहीं रोक रहा है। इस अर्थ में एनपीएम का उपयोग उसी उद्देश्य के लिए दो अलग-अलग औजारों को प्रबंधित करने से ज्यादा प्राकृतिक लगता है।

ऐसा लगता है कि कम से कम अधिक लोकप्रिय लोगों के लिए बोवर के पास अधिक पैकेज उपलब्ध हैं। लेकिन जल्द ही jQuery सीधे एनपीएम में भी उपलब्ध होगा और शायद अन्य सभी पुस्तकालय एक ही प्रवृत्ति का पालन करेंगे।

मेरी राय में, चूंकि webmake और webmake जैसे टूल हैं, जो ब्राउज़र में नोड मॉड्यूल का उपयोग करने में मदद करते हैं, अब बॉवर या वोल् के लिए वास्तविक आवश्यकता नहीं है, जब तक कि वे आपके लिए कुछ और नहीं देते (एक विशेष मॉड्यूल केवल मौजूदा में उनके पंजीकरण)।

वोलो और बोवर दोनों भी अच्छे हैं, लेकिन मेरे दृष्टिकोण से, यदि आप पहले से ही एनपीएम का उपयोग कर रहे हैं, तो इससे बेहतर रहना बेहतर हो सकता है।

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





volojs