2014-04-28 14 views
33
पर नवीनतम संस्करण स्थापित नहीं स्थापित

मैं एक मॉड्यूल कहा जाता है 'पाल-मोंगो' और मैं निम्नलिखित आदेश का उपयोग नवीनतम संस्करण में इसे अपडेट करना:NPM GitHub

npm update sails-mongo --save 

मैं भी स्थापना रद्द करने की कोशिश की तो फिर से स्थापित । मैंने [email protected] और [email protected] की कोशिश की।

समस्या: वर्तमान संस्करण (मास्टर) GitHub पर package.json (https://github.com/balderdashy/sails-mongo/blob/master/package.json) फ़ाइल है:

"dependencies": { 
    "async": "~0.2.9", 
    "lodash": "~2.4.1", 
    "mongodb": "1.4.2", 
    "waterline-errors": "~0.10.0" 
}, 

और एक में अपडेट किया जा रहा

"dependencies": { 
    "async": "0.2.10", 
    "underscore": "1.5.2", 
    "underscore.string": "2.3.3", 
    "mongodb": "~1.3.23" 
}, 

मास्टर शाखा पाने का एकमात्र तरीका npm install git+https://github.com/balderdashy/sails-mongo

कमांड का उपयोग कर रहा है 0

क्यों [email protected] मास्टर शाखा स्थापित नहीं है?

+7

क्योंकि एनपीएम जीथूब से स्थापित नहीं होता है, यह [एनपीएम] (https://www.npmjs.org/package/sails) से स्थापित होता है। 'Package.json' में 'रिपॉजिटरी' कुंजी सिर्फ एक रिपोजिटरी की पहचान करती है जो एनपीएम पेज पर दिखाती है। –

+0

+1 लेकिन मुझे यकीन नहीं है कि मैंने आपको मिल गया है, मुझे इसे अलग से पूछने दो: एनपीएम कैसे जानता है कि कौन सा संस्करण स्थापित करना है? – user2867106

+2

संकुल जीथूब से स्वतंत्र रूप से एनपीएम में प्रकाशित किए जाते हैं। जब कोई डेवलपर पैकेज प्रकाशित करता है, तो यह 'package.json' से संस्करण संख्या लेता है। एनपीएम इनमें से प्रत्येक को गिथब की तरह स्टोर करता है। जब आप एनपीएम को इंस्टॉल करते हैं तो यह हमेशा नवीनतम संस्करण स्थापित करेगा, लेकिन यदि आप 'package.json' में पैकेज निर्दिष्ट करते हैं तो आप जो संस्करण स्थापित करना चाहते हैं उसे जोड़ सकते हैं। –

उत्तर

42

डिफ़ॉल्ट रूप से, एनपीएम निर्भरता एनपीएम भंडार से खींची जाती है। लेखकों को एनपीएम रिपोजिटरी में अपने सॉफ़्टवेयर के नए संस्करण मैन्युअल रूप से अपलोड करना होगा, इसलिए एनपीएम पर होस्ट किए गए कोड का "@latest" संस्करण कहीं भी मौजूद कोड के नवीनतम संस्करण से अलग है (उदा।, गिटहब पर)।

NPM भंडार के info page on Sails के अनुसार, नवीनतम NPM होस्ट किया गया संस्करण 0.9.16 है, जबकि current GitHub version0.10.0-rc3 है।

यदि आप अपनी परियोजना किसी विशेष शाखा पर निर्भर करना चाहते हैं या किसी विशेष गिट रेपो (एनपीएम रिपोजिटरी पर होस्ट किए गए संस्करणों के बजाय) की प्रतिबद्धता चाहते हैं, तो एनपीएम डेवलपर्स ने इसे अनुमति देने के लिए एक स्पष्ट तंत्र शामिल किया है, package.json docs में "Git URLs as Dependencies" में विस्तृत:

Git निर्भरता के रूप में यूआरएल

Git यूआरएल फार्म के हो सकते हैं:

git://github.com/user/project.git#commit-ish 
git+ssh://[email protected]:project.git#commit-ish 
git+ssh://[email protected]/project.git#commit-ish 
git+http://[email protected]/project/blah.git#commit-ish 
git+https://[email protected]/project/blah.git#commit-ish 

commit-ish कोई टैग, शा या शाखा हो सकती है जिसे git checkout पर तर्क के रूप में आपूर्ति की जा सकती है। डिफ़ॉल्ट master है।

वास्तव में, यह आसान अभी भी use a Github.com repo करने के लिए एक निर्भरता के रूप में बताया गया है:

संस्करण 1.1.65 के रूप में, तुम सिर्फ "foo": "user/foo-project" रूप GitHub यूआरएल देख सकते हैं।उदाहरण के लिए:

{ 
    "name": "foo", 
    "version": "0.0.0", 
    "dependencies": { 
    "express": "visionmedia/express" 
    } 
} 

तो, पाल GitHub रेपो का उपयोग करने के लिए, बस का उपयोग करें:

"dependencies": { 
    "sails": "balderdashy/sails-mongo", 
    ... 
} 

और के रूप में 28 अप्रैल, 2014 से GitHub पर मौजूद पाल का सही उपयोग करने के लिए राज्य , का उपयोग करें:

"dependencies": { 
    "sails": "git://github.com/balderdashy/sails-mongo#b9cdce9a48", 
    ... 
} 
+1

तो वास्तव में हर समय github जाने के बिना '' 'नवीनतम स्थिर '' रिलीज को स्थापित करने का कोई तरीका नहीं है और विशेष रूप से कौन सी रिलीज/शाखा/आदि जांचें। आप की जरूरत है? – Andrey

+0

@Andrey क्या आप नवीनतम स्थिर संस्करण के लिए रेपो की मास्टर शाखा का उपयोग नहीं कर सकते हैं? यदि रेपो रखरखाव नई शाखाएं बनाते हैं और स्विच करते हैं कि किन शाखा में नवीनतम संस्करण है, तो हां, आपको उस रखरखाव के शेल-गेम के साथ रहना होगा जिसमें शाखा नवीनतम है। – apsillers

+0

हमेशा नहीं, यानी 'n' npm github इंस्टॉल करें: jquery/jquery-ui''' नवीनतम उपलब्ध रिलीज इंस्टॉल करता है (https://github.com/jquery/jquery-ui/releases) ... – Andrey

1

मुझे एक समान समस्या थी। वाया NPM रजिस्ट्री मैं, एक परियोजना मैं GitHub में में देखा था से नवीनतम पाने के लिए कोशिश कर रहा था इस तरह: (के रूप में node_modules/ फ़ोल्डर में मनाया)

//package.json 
"devDependencies": { 
    "foo-package": "^3.3.0", 
} 

लेकिन कोड मैं npm install से वापस मिल क्या मैं नहीं था गिटहब रिपोजिटरी की मास्टर शाखा में देखा। मैं भ्रमित था; क्योंकि दोनों मेल नहीं खाते थे।

मुझे अंततः मिला: https://docs.npmjs.com/cli/view, जो एनपीएम रजिस्ट्री को किसी विशेष भंडार के बारे में पता है, की कुछ जानकारी (संस्करण और तिथियां) बताती है।

// Console example 
npm view foo-package 

पुष्टि है कि मैं क्या GitHub भंडार के मालिक शाखा से चाहता था NPM रजिस्ट्री में नहीं था के बाद, मैं अंत में मेरी दृष्टिकोण Git URLs as Dependencies, बस @apsillers जवाब के रूप में बदल दिया है।