npm
npm आमतौर पर Node.js मॉड्यूल्स प्रबंधित करने के लिए उपयोग किया जाता है और नेस्टेड डिपेंडेंसी ट्री बनाता है। यह फ्रंट-एंड के लिए भी काम करता है और Grunt, CoffeeScript जैसे डेवलपर टूल्स के लिए उपयोग किया जाता है।
नेस्टेड डिपेंडेंसीज के बिना डिपेंडेंसी कंफ्लिक्ट्स से बचना मुश्किल है। इसलिए, npm का उपयोग करना बहुत अच्छा साबित हुआ है।
Node में आप जो भी जोड़ते हैं वह मॉड्यूल्स के रूप में संरचित होता है। ब्राउज़र-साइड डिपेंडेंसीज के लिए NPM का उपयोग करने पर, आप अपने कोड को Node की तरह संरचित करेंगे।
यहां डिपेंडेंसी संरचना है:
project root
[node_modules] -> dependency P -> dependency Q
[node_modules] -> dependency P -> dependency R
[node_modules] -> dependency Q
[node_modules] -> dependency P -> dependency S
Bower
Bower फ्लैट डिपेंडेंसी ट्री की आवश्यकता करता है और फ्रंट एंड के लिए उपयोग किया जाता है। यह फ्रंट-एंड पैकेजेस के लिए उपयोगी है।
यह प्लेन ओल्ड JavaScript फाइल्स लोड करता है जैसे <head> टैग में <script>…</script> जोड़ना।
यह फ्रंट-एंड के लिए ऑप्टिमाइज़्ड है और फ्लैट डिपेंडेंसी ट्री उपयोग करता है, जिसमें प्रत्येक पैकेज के लिए केवल एक संस्करण की आवश्यकता होती है। यह अंततः पेज लोड को न्यूनतम कर देता है।
नोट: Bower अब डिप्रिकेटेड है।
यहां डिपेंडेंसी संरचना है:
project root
[bower_components] -> dependency P -> dependency Q // wants P
-> dependency R // wants Q and R
-> dependency S