कहें कि आप एक लाइब्रेरी lib-a
स्थापित करना चाहते हैं जिसमें निर्भरता dep-1
और dep-2
है। यदि lib-a
ने अपने पैकेज.जेसन में dep-2
के संस्करण का उपयोग करने के लिए घोषित किया है जो कि पुराना है (कहें कि यह नोड 0.8.0 पर काम नहीं करता है जो अभी बाहर आया है), लेकिन dep-2
की एक शाखा है जो नोड 0.8 के साथ काम करती है .0 - शाखा का नाम node0.8.0
।एनपीएम के साथ एक पैकेज स्थापित करते समय, क्या आप इसे अपनी निर्भरताओं में से किसी एक के एक अलग संस्करण का उपयोग करने के लिए कह सकते हैं?
तो समीकरण में संकुल हैं:
git://github.com/user-a/lib-a
git://github.com/user-b/dep-1
git://github.com/user-c/dep-2
git://github.com/user-c/dep-2#node0.8.0
वहाँ एक रास्ता lib-a
स्थापित है, लेकिन dep-2#node0.8.0
बजाय dep-2
उपयोग करने के लिए NPM बताने के लिए है?
NPM के साथ आप इस तरह की एक परियोजना की एक विशिष्ट शाखा स्थापित कर सकते हैं:
npm install git://github.com/user-c/dep-2#node0.8.0
और अगर मैं lib-a
की package.json अनुकूलित करने के लिए थे, तो आप इस तरह dep-2#node0.8.0
उपयोग करने के लिए यह बता सकते हैं:
{
"name": "lib-a",
"dependencies": {
"dep-1": ">= 1.5.0",
"dep-2": "git://github.com/user-c/dep-2#node0.8.0"
}
}
package.json को संशोधित करके आप तो चला सकते हैं
npm install lib-a
और यह नोड 0.8.0 संगत dep-2
शाखा स्थापित करेगा। लेकिन, इसके लिए मुझे lib-a
को संशोधित करने की आवश्यकता है, जो मेरे विशिष्ट मामले के लिए नहीं है। तकनीकी रूप से, मैं lib-a
कांटा सकता हूं और उपरोक्त परिवर्तन package.json में बदल सकता हूं। लेकिन मेरे विशिष्ट मामले में, lib-a
एक और पुस्तकालय का एक निर्भरता वहाँ के लिए एक रास्ता है, इसलिए मैं इस परियोजना को कांटा करने के लिए यह संदर्भित है, और पर और पर होगा ...
तो सवाल यह है, है lib-a
स्थापित करने के लिए एनपीएम को बताएं, और की node0.8.0
शाखा का उपयोग करने के लिए कहें? कुछ ऐसा:
npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0
यह शानदार होगा। यदि यह संभव नहीं है, तो यह जानना अच्छा होगा कि मैं परियोजनाओं की श्रृंखला को फोर्क/अनुकूलित करने के लिए खुद को तैयार कर सकता हूं।
ऐसा लगता है कि अगर आप निर्भरता पहले स्थापित करते हैं, तो अन्य पुस्तकालयों की आवश्यकता होती है वह निर्भरता स्वयं डाउनलोड नहीं करेगी। इससे समस्या हल हो जाती है! धन्यवाद! –
क्या यह सही है? मैंने npm -g इंस्टॉल/पथ/से/my/fork-with-fix और फिर npm -g इंस्टॉल पैकेज-जो-उपयोग-फोर्क-निर्भरता-साथ-ठीक-ठीक करने की कोशिश की और ... यह अभी भी आधिकारिक संस्करण डाउनलोड करता है। –
'एनपीएम लिंक' पर एक नज़र डालें। – knownasilya