उदाहरण के लिए, एक ग्रन्ट प्लगइन ग्रन्ट पर अपनी निर्भरता को " सहकर्मी निर्भरता " के रूप में क्यों परिभाषित करता है ?
प्लग- इन ग्रन्ट-प्लग / नोड_मॉड्यूल्स में अपनी निर्भरता के रूप में सिर्फ ग्रन्ट क्यों नहीं हो सकता है ?
सहकर्मी निर्भरताएं यहां वर्णित हैं: https://nodejs.org/en/blog/npm/peer-d dependencies /
लेकिन मैं वास्तव में यह नहीं मिलता है।
उदाहरण
मैं इस समय AppGyver स्टेरॉयड के साथ काम कर रहा हूं जो एक स्थानीय डिवाइस पर सेवा के लिए मेरे स्रोत फ़ाइलों को / dist / फ़ोल्डर में बनाने के लिए Grunt कार्यों का उपयोग करता है। मैं npm और ग्रंट पर काफी नया हूं इसलिए मैं पूरी तरह से समझना चाहता हूं कि क्या चल रहा है।
अब तक मुझे यही मिलता है:
[rootfolder] /package.json npm को बताता है कि यह grunt-steroids
विकास के लिए npm पैकेज पर निर्भर करता है :
"devDependencies": {
"grunt-steroids": "0.x"
},
ठीक है। [रूटफोलर] में एनपीएम इंस्टालिंग चलाना निर्भरता का पता लगाता है और [रूटफोलर] / नोड_मॉड्यूल्स / ग्रंट -स्टेरॉयड में ग्रंट -स्टेरॉयड स्थापित करता है ।
Npm तब पढ़ता है [rootfolder] /node_modules/grunt-steroids/package.json ताकि यह grunt-steroids
खुद पर निर्भरता स्थापित कर सके :
"devDependencies": {
"grunt-contrib-nodeunit": "0.3.0",
"grunt": "0.4.4"
},
"dependencies": {
"wrench": "1.5.4",
"chalk": "0.3.0",
"xml2js": "0.4.1",
"lodash": "2.4.1"
},
"peerDependencies": {
"grunt": "0.4.4",
"grunt-contrib-copy": "0.5.0",
"grunt-contrib-clean": "0.5.0",
"grunt-contrib-concat": "0.4.0",
"grunt-contrib-coffee": "0.10.1",
"grunt-contrib-sass": "0.7.3",
"grunt-extend-config": "0.9.2"
},
" निर्भरता " पैकेज को [रूटफ़ोल्डर] / नोड_मॉड्यूल / ग्रंट-स्टेरॉयड / नोड_मॉड्यूल्स में स्थापित किया जाता है जो मेरे लिए तर्कसंगत है।
" DevD डिपेंडेंसीज़ " स्थापित नहीं हैं, जो मुझे यकीन है कि npm द्वारा नियंत्रित किया जाता है यह पता लगाने के लिए कि मैं बस उपयोग करने की कोशिश कर रहा हूं grunt-steroids
, और उस पर विकसित नहीं हूं ।
लेकिन फिर हमारे पास " सहकर्मी निर्भरता " है।
ये [rootfolder] / node_modules में स्थापित हैं , और मुझे समझ नहीं आ रहा है कि क्यों और इसमें [rootfolder] / node_modules / grunt-steroids / node_modules इसलिए नहीं हैं ताकि अन्य स्टंट प्लग (या जो भी) से बचा जाए?
"grunt": "0.4.4"
दोनों निर्भरता और सहकर्मी निर्भरता में हैं, और यह मेरे लिए समझ में आता है कि वहां एक डुप्लिकेट है, क्योंकि इसका मतलब है कि दोनोंgrunt
को मेरे अपने उपयोग के लिए उस पैकेज की आवश्यकता है , लेकिन यह भी कि मेरे उपयोगकर्ता पुस्तकालय अपने स्वयं के संस्करण का उपयोग कर सकते हैं, जब तक कि यह सहकर्मी निर्भरता संस्करण लॉक का सम्मान करता है। क्या वो सही है? या ओपी उदाहरण बहुत बुरा है?