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




package npm (20)

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

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

npm -v <package-name>

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

npm version <package-name>

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

npm view <package-name> version

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

https://code.i-harness.com


package.json तक पहुंचें

आप package.json bower.json या bower.json तक पहुंच सकते हैं:

notepad ./node_modules/:packageName/package.json

यह notepad में package.json खुल जाएगा जिसमें आपके द्वारा command में शामिल package.json का version number है।

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

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

शुभ लाभ।


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

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

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

npm info <package name > version


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


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

npm list --depth 1 --global packagename

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

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


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

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

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

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


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

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

npm list | find <package name>

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

npm list | sls <package name>


मैंने इसे अपने .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 version is: 4.2.0 उदाहरण: NPM version is: 4.2.0
  • स्थानीय संस्करण के लिए npmv <package-name> उदाहरण: 0.8.08
  • वैश्विक संस्करण के लिए npmv <package-name> g उदाहरण: 0.8.09
  • नवीनतम संस्करण के लिए npmv <package-name> l उदाहरण: 0.8.10

नोट-डी कट कमांड का मतलब है कि इसके बाद delimit, @ के बाद, फिर f का मतलब है कि क्षेत्र 2 का दूसरा क्षेत्र है क्योंकि @ प्रतीक का एक और पक्ष होगा।


मैंने एक उपकरण बनाया है जो ठीक है - 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 की रूट में और cli-table2 node_modules cli-table2 और karma के node_modules में दो अन्य प्रतियों में lodash स्थापित किया है।

यह वास्तव में तेज़ है, और टैब की समापन और मिलान खोज जैसी कुछ अच्छी सुविधाएं हैं।


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

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

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


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

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

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

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

[email protected] /path/to/project/folder
└── [email protected]

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

├─┬ [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
└── [email protected] 

स्थानीय पैकेज के लिए

npm list --depth=0

वैश्विक पैकेज के लिए

npm list  -g --depth=0

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

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

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


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

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

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

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


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

npm list --depth=0

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

├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

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

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

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


npm info YOUR_PACKAGE version

जैसे

npm info grunt version
0.4.5




npm