स्थापित एनपीएम पैकेज का संस्करण ढूंढें


2197

स्थापित नोड.जेएस / एनपीएम पैकेज का संस्करण कैसे ढूंढें ?

यह स्वयं npm के संस्करण को प्रिंट करता है:

npm -v <package-name>

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

npm version <package-name>

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

npm view <package-name> version

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


5
मेरे इंस्टॉलेशन पर, "npm -v <पैकेज-नाम>" npm के संस्करण की रिपोर्ट करता है, स्वयं। रजिस्ट्री में पैकेज के नवीनतम संस्करण को सूचीबद्ध करने के लिए, मैंने पाया है कि "एनपीएम व्यू <पैकेज-नेम> संस्करण" से काम हो जाता है।
डेविड ए। ग्रे।

15
npm show
npm

जवाबों:


2574

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 

आप --depth=0उनकी निर्भरता के बिना स्थापित पैकेजों को सूचीबद्ध करने के लिए तर्क भी जोड़ सकते हैं ।


126
वांछित मॉड्यूल संस्करण को फ़िल्टर करने के लिए मैक और लिनक्स पर "grep मॉड्यूल_name" जोड़ना अच्छा है। खासकर जब विश्व स्तर पर -g के साथ चल रहा हो। उदाहरण के लिए: स्थापित एक्सप्रेस संस्करण पाने के लिए "npm सूची -g | grep एक्सप्रेस"।
गुया

103
यदि आप एक विशिष्ट मॉड्यूल चाहते हैं, तो आप इसे npm list less-middlewareएक उदाहरण के रूप में चला सकते हैं ।
जुआनपाको

13
विंडोज पर * * nix आधारित सिस्टम के लिए @ guya की टिप, आप समान परिणामों के लिए PowerShell का उपयोग कर सकते हैं: | select-string module_nameमॉड्यूल को फ़िल्टर करने के लिए। या, यदि आप गिट बैश (या बस बैश, उस मामले के लिए) का उपयोग कर रहे हैं, तो आप उपयोग कर सकते हैं grep
नोएल

15
अगर आपको याद नहीं है list, तो npm lsभी काम करता है। वास्तव में, कई एनपीएम कमांड में उपनाम होते हैं, और इसके अलावा, यदि आप एक कमांड का एक विकल्प टाइप करते हैं, अगर यह प्रतिस्थापन असंदिग्ध है, तो यह भी काम करेगा; उदाहरण के लिए npm ls, npm list, npm lisसब एक ही हैं। यदि आप अधिक वर्बोज़ आउटपुट चाहते हैं, तो प्रयास करें npm ll(लेकिन शायद आप --depth=0इसे जोड़ना चाहते हैं )।
jakub.g

4
स्क्रिप्ट के साथ पार्स करने के लिए आउटपुट सबसे अच्छा नहीं है। क्या वास्तव में ऐसा आउटपुट प्राप्त करने का कोई तरीका नहीं है जो बिना कुछ किए बिना सिर्फ पैकेज संस्करण हैnpm list -g | awk -F@ '/<package>/ { print $2}'
Thayne

867

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

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


14
यह मुझे उसी तरह है जैसे कि 18 वीं रात में
यार्गादन के

7
ऐसा लगता है कि उन्होंने इसे npm 1.4.6 में तय किया है। देखें github.com/npm/npm/issues/4733
होवी

7
के साथ महान काम करता है| grep <package_name>
मार्को प्रिन्स

4
@yygadon सही है, लेकिन --depth=0यह तेजी से बनाता है, क्योंकि यह निर्भरता लोड करने के लिए नहीं है
Marco Prins

npm list -g --depth=0सूची मॉड्यूल के लिए विश्व स्तर पर स्थापित
EdgeDev

219

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

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

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

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


16
npm देखें <पैकेज> संस्करण, स्थानीय फ़ाइल सिस्टम के लिए npm दूरस्थ रजिस्ट्री पर जाता है ...
अलेक्जेंडर मिल्स

@AlexanderMills सच है, लेकिन यहां होने से इसके लिए एक और खोज से बचा जाता है। Btw, npm v, npm infoऔर npm showके सभी उर्फ हैं npm view
CPHPython

85
npm info YOUR_PACKAGE version

जैसे

npm info grunt version
0.4.5

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

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

उपलब्ध नवीनतम संस्करण दिखाता है, नवीनतम स्थापित नहीं है। Downvoted।
लोफिएलसिंकी

2
npm info YOUR_PACKAGE versionकेवल एक ही काम किया :)
GOXR3PLUS

वही, 'npm info Your_PACKAGE संस्करण' केवल वही काम करता है
जोनास

63

मैंने अभी उपयोग किया है

npm list | grep <package name>

और इसने बहुत अच्छा काम किया

खिड़कियों पर चलाएं:

npm list | find <package name>

PowerShell रन में:

npm list | sls <package name>

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

4
विंडोज उपयोगकर्ताओं के लिए: npm list -g --depth=0 |find "<package name>"
robe007

56

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

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

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

EDIT 2 : @ jeff-Dickey के उत्तर के अनुसार अपडेट किया गया


अच्छा! "एनपीएम सूची" चलाने की तुलना में थोड़ा तेज है क्योंकि अन्य उत्तर सुझाते हैं (~ 20 के बजाय ~ 1s) - कम से कम जब आपके पास यह कोड स्निपेट तैयार हो जाए! (ऐसा करने के लिए वास्तव में एक npm प्लगइन होना चाहिए ...)
Venryx

1
याnode -p "require('./package.json').version"
जेफ डिके

2
यह वास्तविक संस्करण स्थापित नहीं होगा अगर कोई सीमा परिसीमन है जैसे ^ ~
geedew


21

उपरोक्त कुछ उत्तरों को मिलाकर एक सुपर सिंपल और सुपर क्विक लुकअप तैयार होता है।
प्रोजेक्ट रूट से चलाएँ। cdकिसी भी फ़ोल्डर में जाने की जरूरत नहीं , बस 1 लाइन:

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


21

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

npm info <package name> version


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

@DawidFerenczy अपने शो के साथ सहमत केवल नवीनतम संस्करण जैसे npm जानकारी http
नितिन।

16

यदि आप 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

14

यदि आप पर्याप्त बहादुर हैं (और 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


node -e "console.log(require('./package.json').version);"
पैपीरो

12

स्थानीय या वैश्विक रूप से सभी स्थापित पैकेजों को देखने के लिए, इन आदेशों का उपयोग करें:

  1. npm listस्थानीय पैकेजों के लिए या npm list -gविश्व स्तर पर स्थापित पैकेजों के लिए।
  2. npm list --depth=0
  3. npm list | sls <package name>
  4. node -v


10

मैंने एक उपकरण बनाया है जो बिल्कुल ऐसा करता है - qnm

qnm - node_modulesनिर्देशिका को क्वेरी करने के लिए एक साधारण सीएलआई उपयोगिता ।

इसका उपयोग करके इसे स्थापित करें:

npm i --global qnm

और भाग खड़ा हुआ:

qnm [module]

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

> qnm lodash

lodash
├── 4.17.5
├─┬ cli-table2
 └── 3.10.1
└─┬ karma
  └── 3.10.1

जिसका अर्थ है हम है lodashकी जड़ में स्थापित node_modulesऔर में दो अन्य प्रतियां node_modulesकी cli-table2और karma

यह वास्तव में तेज़ है, और इसमें कुछ अच्छी विशेषताएं हैं जैसे टैब पूरा करना और मैच सर्च।


9

संस्करण संख्या के उपयोग के साथ स्थानीय पैकेजों को सूचीबद्ध करने के लिए:

npm ls --depth=0

संस्करण संख्या के उपयोग के साथ वैश्विक पैकेजों को सूचीबद्ध करने के लिए:

npm ls -g --depth=0


8

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

मान लीजिए कि मेरा ग्रन्ट मॉड्यूल संस्करण 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

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

8

npm list --depth 0 वह कमांड है जो सभी पुस्तकालयों को संस्करण के साथ दिखाता है लेकिन आप उपयोग कर सकते हैं npm-check

npm-check एक अच्छी लाइब्रेरी है, जो वर्जन सिस्टम ईवेंट के बारे में उन सभी चीजों को मैनेज करने के लिए है, इसमें लाइब्रेरी वर्जन, नया वर्जन अपडेट और अप्रयुक्त वर्जन और कई और चीजें दिखाई देंगी।

स्थापित करने के लिए इसे चलाएं

npm install -g npm-check

और बस चलाते हैं

npm-check

स्क्रीनशॉट की जाँच करें यह पैकेज संस्करण, नया संस्करण अद्यतन और अप्रयुक्त संस्करण के बारे में सब कुछ दिखा रहा है।

यहां छवि विवरण दर्ज करें

यह विश्व स्तर पर भी काम करता है। कोशिश करो। आशा है कि यह किसी की मदद करेंगे।


6

यहां एक पोर्टेबल यूनिक्स (उपयोग grepऔर sed) एक-लाइनर है जो विश्व स्तर पर स्थापित एनपीएम पैकेज के संस्करण स्ट्रिंग को लौटाता है ( इसके बजाय स्थानीय पैकेज क्वेरी gसे हटा दें -pg):

$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'
0.4.5
  • npm llआउटपुट एक parseable स्ट्रिंग की तरह स्वरूपित: /usr/lib/node_modules/npm:npm@2.14.8:;
  • grepआदेश के बीच मूल्य निकालता है @और :समावेशी;
  • sedआदेश आसपास के पात्रों को हटा।

6

मैंने इसे अपने .bashrc में जोड़ा

function npmv {
    case $# in # number of arguments passed
    0) v="$(npm -v)" ; #store output from npm -v in variable
        echo "NPM version is: $v"; #can't use single quotes 
                                   #${v} would also work
    ;;   
    1) s="$(npm list --depth=0 $1 | grep $1 | cut -d @ -f 2)";
       echo "$s";
    ;;
    2) case "$2" in # second argument
        g) #global|#Syntax to compare bash string to literal
             s="$(npm list --depth=0 -g $1 | grep $1 | cut -d @ -f 2)";
        echo "$s";
        ;;
        l) #latest
             npm view $1 version; #npm info $1 version does same thing
       ;;
       *) echo 'Invalid arguments';
       ;;
       esac;
    ;;
    *) echo 'Invalid arguments';
    ;;
    esac;
}
export -f npmv

अब मुझे बस इतना करना है:

  • npm के संस्करण के लिए npmv उदा:NPM version is: 4.2.0
  • स्थानीय संस्करण के लिए npmv <पैकेज-नाम> उदा:0.8.08
  • वैश्विक संस्करण के लिए npmv <पैकेज-नाम> जी उदाहरण:0.8.09
  • नवीनतम संस्करण के लिए npmv <पैकेज-नाम> l जैसे:0.8.10

Note -d on cut कमांड का मतलब होता है delimit by, उसके बाद @, फिर f का मतलब है 2 मतलब दूसरा फील्ड, क्योंकि @ सिंबल के दोनों ओर एक होगा।


5

आप यह कोशिश कर सकते हैं: npm show {package} versionनवीनतम पैकेज संस्करण दिखाता है। और अगर आपका पैकेज पुराना है, npm outdatedतो इसे संस्करण जानकारी के साथ दिखाएंगे।


2
ओपी वर्तमान में स्थापित पैकेज के संस्करण के बारे में पूछ रहा था , पैकेज रजिस्ट्री में उपलब्ध नवीनतम संस्करण नहीं।
डेविड फेरेंस्की रोगोजान

5

यह सरल प्रश्न है, और जो मुझे ऊपर दिखाई दे रहा है, उससे अधिक सरल उत्तर होना चाहिए।

अपने संस्करण के साथ स्थापित एनपीएम पैकेजों को देखने के लिए, कमांड npm ls --depth=0, जो डिफ़ॉल्ट रूप से, प्रदर्शित करता है कि स्थानीय रूप से क्या स्थापित है। विश्व स्तर पर स्थापित पैकेज देखने के लिए, -globalतर्क जोड़ें npm ls --depth=0 -global:।

--depth=0 अपनी निर्भरता के बिना स्थापित पैकेजों की एक सूची देता है, जो कि आप ज्यादातर समय करना चाहते हैं।

lsकमांड का नाम है, और इसके list लिए एक उपनाम है ls


3

तक पहुंच package.json

आप पैकेज के साथ package.jsonया bower.jsonका उपयोग कर सकते हैं :

notepad ./node_modules/:packageName/package.json

यह खुल जाएगा package.jsonमें notepadजो है version numberकी :packageNameआप में शामिल command

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

notepad ./node_modules/vue-template-compiler/package.json

शुभ लाभ।


6
न केवल ऐसा करने के लिए बहुत आसान तरीके हैं, आपके द्वारा अपने पैकेज में निर्दिष्ट संस्करण। वास्तव में सेमर रेंज नोटेशन के कारण स्थापित संस्करण नहीं हो सकता है। अर्थात्, एक निर्भरता को संस्करण ^ 1.3.0 के रूप में निर्दिष्ट किया जा सकता है, लेकिन इसका मतलब संस्करण 1.3.0 से 1.99.99 तक कुछ भी हो सकता है
Isochronous

3

हम किसी भी वादे (आपके मॉड्यूल का नाम) -v देखने के लिए npm का उपयोग कर सकते हैं


1
यह नवीनतम संस्करण उपलब्ध दिखाता है, स्थानीय निर्देशिका में संस्करण नहीं।
क्रिश्चियनबॉडी

@christianbundy आप npm सूची --depth = 0 का उपयोग कर सकते हैं grep uuid
नितिन

मुझे उपयोग करना था npm list --depth=0 | grep uuid | awk '{ print $2; }' | cut -d '@' -f 2, लेकिन हाँ, यह तब तक काम करता है जब तक यह शीर्ष स्तर की निर्भरता है। मुझे नहीं लगता कि मूल सवाल के आधार पर हमेशा ऐसा ही होता है।
क्रिश्चियनबॉडी


0

इसका बहुत ही सरल..बस प्रकार नीचे लाइन

npm view < package-name > version

** उदाहरण **

npm view redux version

मेरे पास redux का संस्करण 7.2.0 है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.