सवाल एक स्थापित एनपीएम पैकेज का संस्करण खोजें


स्थापित node.js / npm के संस्करण को कैसे ढूंढें पैकेज?

यह एनपीएम के संस्करण को स्वयं प्रिंट करता है:

npm -v <package-name>

यह एक गुप्त त्रुटि प्रिंट करता है:

npm version <package-name>

यह पैकेज संस्करण प्रिंट करता है रजिस्ट्री पर (यानी नवीनतम संस्करण उपलब्ध है):

npm view <package-name> version

मैं कैसे प्राप्त करूं स्थापित संस्करण?


1577
2018-06-10 20:36


मूल


npm का स्थापित संस्करण प्राप्त करने के लिए कमांड => npm --version का उपयोग करें। - LogicalDesk
प्रयत्न npm show <package> version - r00t hkr
मेरी स्थापना पर, "npm -v <package-name>" स्वयं को एनपीएम के संस्करण की रिपोर्ट करता है। रजिस्ट्री में किसी पैकेज के नवीनतम संस्करण को सूचीबद्ध करने के लिए, मैंने पाया है कि "npm view <package-name> संस्करण" काम पूरा हो जाता है। - David A. Gray


जवाब:


npm list स्थानीय पैकेज के लिए या npm list -g वैश्विक स्तर पर स्थापित संकुल के लिए।

आप एक तर्क के रूप में अपना नाम पारित करके एक विशिष्ट पैकेज का संस्करण पा सकते हैं। उदाहरण के लिए, npm list grunt में परिणाम होगा:

projectName@projectVersion /path/to/project/folder
└── grunt@0.4.1

वैकल्पिक रूप से, आप बस चला सकते हैं npm list अपने सभी संकुल के संस्करण देखने के लिए एक तर्क के रूप में एक पैकेज नाम गुजरने के बिना:

├─┬ cli-color@0.1.6 
│ └── es5-ext@0.7.1 
├── coffee-script@1.3.3 
├── less@1.3.0 
├─┬ sentry@0.1.2 
│ ├── file@0.2.1 
│ └── underscore@1.3.3 
└── uglify-js@1.2.6 

1936
2018-06-11 19:13



मैक और लिनक्स पर वांछित मॉड्यूल संस्करण को फ़िल्टर करने के लिए "| grep module_name" जोड़ना अच्छा होता है। विशेष रूप से जब वैश्विक स्तर पर चल रहा है -जी। उदाहरण के लिए: स्थापित एक्सप्रेस संस्करण प्राप्त करने के लिए "npm list -g | grep express"। - guya
यदि आप एक विशिष्ट मॉड्यूल चाहते हैं, तो आप इसे चला सकते हैं npm list less-middleware उदहारण के लिए। - juanpaco
विंडोज़ पर * निक्स आधारित सिस्टम के लिए प्रति @ guya की नोक, आप इसी तरह के परिणामों के लिए पावरशेल का उपयोग कर सकते हैं: | select-string module_name मॉड्यूल फ़िल्टर करने के लिए। या, यदि आप गिट बैश (या केवल उस मामले के लिए बैश) का उपयोग कर रहे हैं, तो आप इसका उपयोग कर सकते हैं grep। - Noel
अगर आपको याद नहीं है list, npm ls भी काम करता है वास्तव में, कई एनपीएम कमांडों में उपनाम होते हैं, और इसके अलावा, यदि आप कमांड का एक सबस्ट्रिंग टाइप करते हैं, यदि यह सबस्ट्रिंग अस्पष्ट है, तो यह भी काम करेगा; उदाहरण के लिए npm ls, npm list, npm lis सब एक ही हैं। यदि आप अधिक वर्बोज़ आउटपुट चाहते हैं, तो कोशिश करें npm ll (लेकिन शायद आप चाहते हैं --depth=0 इसमें जोड़ा गया)। - jakub.g
एक स्क्रिप्ट के साथ पार्सिंग के लिए आउटपुट सबसे अच्छा नहीं है। क्या वास्तव में आउटपुट प्राप्त करने का कोई तरीका नहीं है जो कि कुछ ऐसा करने के बिना पैकेज संस्करण है npm list -g | awk -F@ '/<package>/ { print $2}' - Thayne


यह पता लगाने का एक और त्वरित तरीका कि कौन से पैकेज स्थापित हैं स्थानीय स्तर पर तथा उनकी निर्भरताओं के बिना उपयोग करना है:

npm list --depth=0

जो आपको कुछ पसंद करता है

├── bower@0.8.6
├── grunt@0.4.1
├── grunt-bower-requirejs@0.4.3
├── grunt-contrib-clean@0.4.1
├── grunt-contrib-coffee@0.7.0
├── grunt-contrib-copy@0.4.1
├── grunt-contrib-imagemin@0.1.4
├── grunt-contrib-jshint@0.1.1
├── grunt-contrib-livereload@0.1.2
├── grunt-contrib-requirejs@0.4.1
├── grunt-regarde@0.1.1
└── grunt-svgmin@0.1.0

जाहिर है, वही वैश्विक स्तर पर किया जा सकता है npm list -g --depth=0

यदि आपने बहुत सारे पैकेज इंस्टॉल किए हैं तो यह विधि स्पष्ट है।

यह पता लगाने के लिए कि कौन से पैकेज अपडेट किए जाने की आवश्यकता है, आप इसका उपयोग कर सकते हैं npm outdated -g --depth=0


707
2018-05-23 01:50



यह मुझे बिना देरी के समान देता है - ygaradon
ऐसा लगता है कि उन्होंने इसे एनपीएम 1.4.6 में तय कर दिया है। देख github.com/npm/npm/issues/4733 - Howie
के साथ महान काम करता है | grep <package_name> - Marco Prins
@ygaradon सही, लेकिन --depth=0 इसे तेज़ी से बनाता है, क्योंकि इसे निर्भरता लोड करने की आवश्यकता नहीं होती है - Marco Prins


npm view <package> version - पैकेज पर नवीनतम उपलब्ध संस्करण देता है।

npm list --depth=0 - निर्भरताओं के बिना सभी स्थापित मॉड्यूल के संस्करण लौटाता है।

npm list - सभी मॉड्यूल और निर्भरताओं के संस्करण लौटाता है।

और अंत में नोड संस्करण प्राप्त करने के लिए: node -v


164
2017-07-01 03:03



एनपीएम व्यू <पैकेज> संस्करण, एनपीएम रिमोट रजिस्ट्री पर जाता है, स्थानीय फाइल सिस्टम नहीं ... - Alexander Mills
@AlexanderMills सच है, लेकिन इसे यहां रखने के लिए इसके लिए एक और खोज से बचा जाता है। btw, npm v, npm info तथा npm show सभी उपनाम हैं npm view। - CPHPython


npm info YOUR_PACKAGE version

जैसे

npm info grunt version
0.4.5

71
2018-06-24 03:21



यह स्थापित पैकेज संस्करण नहीं दिखाता है, यह केवल नवीनतम उपलब्ध संस्करण दिखाता है। - Tanner Semerad
@ टैनर-सेमेराड से सहमत हैं। मैंने चेक किया एनपीएम का डॉक्स इसे साफ़ करने के लिए। npm info के लिए उपनाम है npm view और में एनपीएम का डॉक्स आपको वह खड़ा मिलेगा: यह आदेश एक पैकेज के बारे में डेटा दिखाता है और इसे आउटफर्ड कॉन्फ़िगरेशन द्वारा संदर्भित धारा में प्रिंट करता है, जो stdout के लिए डिफ़ॉल्ट है। [...]  यदि अनिर्दिष्ट है तो डिफ़ॉल्ट संस्करण "नवीनतम" है।  इस तरह मैं वोट देता हूं। - dannydedog


मैंने अभी इस्तेमाल किया npm list | grep <package name> और यह बहुत अच्छा काम किया

विंडोज़ रन पर:

npm list | find <package name>

पावरशेल रन में:

npm list | sls <package name>


38
2018-01-27 12:39



find संस्करण मेरे लिए काम नहीं करता है - यहां तक ​​कि उद्धृत स्ट्रिंग के साथ भी, लेकिन शक्तियां अच्छी तरह से काम करती हैं - fiat


पैकेज की जड़ से करें:

node -p "require('./package.json').version"

संपादित करें: (तो आपको इसकी जरूरत है cd मॉड्यूल की होम निर्देशिका में यदि आप पहले से नहीं हैं। यदि आपने मॉड्यूल को इंस्टॉल किया है npm install, तो यह नीचे होगा node_modules/<module_name>)

संपादित करें 2: @ जेफ-डिकी से उत्तर के अनुसार अपडेट किया गया


27
2017-09-30 11:57



अच्छा! अन्य उत्तरों के सुझाव के रूप में "एनपीएम सूची" चलाने से काफी तेज़ है (~ 20s के बजाय ~ 1s) - कम से कम जब आपके पास यह कोड स्निपेट तैयार हो! (ऐसा करने के लिए वास्तव में एक एनपीएम प्लगइन होना चाहिए ...) - Venryx
या node -p "require('./package.json').version" - Jeff Dickey


आप उपयोग कर सकते हैं एनपीएम देखें [मॉड्यूल] संस्करण, एनपीएम जानकारी [मॉड्यूल] संस्करण, एनपीएम शो [मॉड्यूल] संस्करण या एनपीएम वी [मॉड्यूल] संस्करण एक स्थापित एनपीएम मॉड्यूल पर संस्करण की जांच करने के लिए।

मान लीजिए कि मेरी गंदगी मॉड्यूल संस्करण 0.4.5 है:

npm view grunt version => 0.4.5
npm info grunt version => 0.4.5
npm show grunt version => 0.4.5
npm v grunt version    => 0.4.5

13
2017-11-12 15:53



वे सभी नवीनतम उपलब्ध संस्करण दिखाते हैं, वर्तमान में स्थापित संस्करण नहीं - sth


आप इस कमांड द्वारा संस्करण भी देख सकते हैं।

npm info <package name > version


13
2017-12-16 04:28



दोबारा, यह पैकेज रजिस्ट्री में उपलब्ध नवीनतम संस्करण दिखाता है जो वर्तमान में स्थापित पैकेज का संस्करण नहीं है। - Dawid Ferenczy


अगर आप स्थापित करने के लिए सहमत हैं JQ, आप JSON आउटपुट का उपयोग कर सकते हैं npm list

npm -j ls <package-name> | jq -r .version

या, यदि आप वर्बोज़ बनना चाहते हैं

npm --json list <package-name> | jq --raw-output '.version'

उदाहरण के लिए:

$ npm -j ls ghost | jq -r .version
0.4.2

साथ ही, JSON प्रारूप वैश्विक संकुल के लिए थोड़ा अलग है, इसलिए आपको क्वेरी को बदलने की आवश्यकता होगी।

उदाहरण के लिए:

$ npm -j -g ls | jq -r .dependencies.ghost.version
0.4.2

12
2017-08-13 11:56





यदि आप बहादुर हैं (और है node स्थापित), आप हमेशा कुछ ऐसा कर सकते हैं:

echo "console.log(require('./package.json').version);" | node

यह वर्तमान पैकेज के संस्करण को मुद्रित करेगा। आप पागल होने के लिए इसे संशोधित भी कर सकते हैं, इस तरह:

echo "eval('var result='+require('child_process').execSync('npm version',{encoding:'utf8'})); console.log(result.WHATEVER_PACKAGE_NAME);" | node

वह संस्करण का प्रिंट करेगा WHATEVER_PACKAGE_NAME पैकेज, जो देखा जाता है npm version


12
2017-08-05 14:41





इसके साथ प्रयास करें:

npm list --depth 1 --global packagename

8
2018-05-13 13:16



उत्तम! खिड़कियों में काम करता है - ElBarto