Yüklü bir npm paketinin sürümünü bulma


2198

Kurulu bir node.js / npm paketinin sürümü nasıl bulunur ?

Bu, npm'nin sürümünü yazdırır:

npm -v <package-name>

Bu şifreli bir hata yazdırır:

npm version <package-name>

Bu, paket sürümünü kayıt defterine yazdırır (yani en son sürüm):

npm view <package-name> version

Kurulu sürümü nasıl edinebilirim ?


5
Yüklememde "npm -v <package-name>" npm sürümünü bildirir. Kayıt defterindeki bir paketin en son sürümünü listelemek için, "npm view <package-name> sürüm" işini hallettim bulduk.
David A. Gray

15
npm shownpm, en son kurulu değil, en son gösterir
Tsagana Nokhaeva

Yanıtlar:


2576

npm listyerel paketler veya npm list -gglobal olarak kurulmuş paketler için.

Belirli bir paketin sürümünü argüman olarak ileterek bulabilirsiniz. Örneğin, aşağıdakilerle npm list gruntsonuçlanır:

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

Alternatif olarak, npm listtüm paketlerinizin sürümlerini görmek için bağımsız değişken olarak bir paket adı iletmeden çalışabilirsiniz :

├─┬ 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=0Yüklü paketleri bağımlılıkları olmadan listelemek için argüman da ekleyebilirsiniz .


126
Mac ve linux'da istenen modül sürümünü filtrelemek için "| grep module_name" ifadesini eklemek güzel. Özellikle -g ile global olarak çalışırken. Örneğin: kurulu ekspres sürümü almak için "npm list -g | grep express".
guya

103
Belirli bir modül istiyorsanız, npm list less-middlewareörnek olarak çalıştırabilirsiniz .
juanpaco

13
Per @ guya'nın * nix tabanlı sistemler için ipucu, Windows'da benzer sonuçlar için PowerShell'i kullanabilirsiniz: | select-string module_namemodülü filtrelemek için. Veya Git Bash kullanıyorsanız (veya bu konuda sadece Bash) kullanabilirsiniz grep.
Noel

15
Eğer hatırlamıyorsanız list, npm lsaynı zamanda çalışır. Aslında, birçok npm komutunun takma adı vardır ve ayrıca, bir komutun alt dizesini yazarsanız, bu alt dize açıksa, aynı zamanda çalışır; Örneğin npm ls, npm list, npm lishepsi aynı. Daha ayrıntılı çıktılar istiyorsanız, deneyin npm ll(ancak muhtemelen --depth=0buna eklemek istiyorsunuz ).
jakub.g

4
Çıktı bir komut dosyasıyla ayrıştırmak için en iyi seçenek değildir. Gerçekten bir şey yapmadan sadece paket versiyonu olan bir çıktı almanın bir yolu yok munpm list -g | awk -F@ '/<package>/ { print $2}'
Thayne

867

Hangi paketlerin yerel olarak ve bağımlılıkları olmadan yüklendiğini bulmanın bir başka hızlı yolu da kullanmaktır:

npm list --depth=0

Hangi sana böyle bir şey verir

├── 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

Açıkçası, aynı şey küresel olarak da yapılabilir npm list -g --depth=0.

Çok fazla paket kurmuş olmanız durumunda bu yöntem daha açıktır.

Hangi paketlerin güncellenmesi gerektiğini bulmak için kullanabilirsiniz npm outdated -g --depth=0.


14
bana --depth
ygaradon

7
1.4.6 npm'de düzeltmiş görünüyorlar. Bkz. Github.com/npm/npm/issues/4733
Howie

7
Harika çalışıyor| grep <package_name>
Marco Prins

4
@ygaradon Doğru, ancak --depth=0daha hızlı yapar, çünkü bağımlılıkları tekrar tekrar yüklemeye gerek yoktur
Marco Prins

npm list -g --depth=0yüklenen liste modülleri için
kablolar

219

npm view <package> version - pakette bulunan en son sürümü döndürür.

npm list --depth=0 - tüm kurulu modüllerin bağımlılık olmadan sürümlerini döndürür.

npm list - tüm modüllerin ve bağımlılıkların sürümlerini döndürür.

Ve son olarak düğüm sürümünü almak için: node -v


16
npm görünümü <paket> sürümü, yerel dosya sistemine değil, npm uzak kayıt defterine gider ...
Alexander Mills

@AlexanderMills True, ancak burada olması bunun için başka bir arama yapılmasını önler. Btw, npm v, npm infove npm showtüm diğer adı vardır npm view.
CPHPython

85
npm info YOUR_PACKAGE version

Örneğin

npm info grunt version
0.4.5

105
Bu, yüklü paket sürümünü göstermez, sadece mevcut en son sürümü gösterir.
Tanner Semerad

@ Tanner-semerad ile aynı fikirde. Ben kontrol NPM'nin Dokümanlar bunu ilişiğinizi için. npm Dokümanlarınpm info için npm viewve takma ad olarak şu ayakta durduğunu göreceksiniz: Bu komut bir paket hakkındaki verileri gösterir ve varsayılan olarak stfut varsayılanı olan outfd config tarafından başvurulan akışa yazdırır. [...] Belirtilmemişse varsayılan sürüm "en son" şeklindedir. Bu şekilde oy kullanıyorum.
dannydedog

En son yüklü olmayan en son sürümü gösterir. Downvoted.
lofihelsinki

2
npm info YOUR_PACKAGE versionÇalışan tek kişi :)
GOXR3PLUS

aynı, 'npm info YOUR_PACKAGE version' Çalışan tek kişi
Jonas

63

Az önce kullandım

npm list | grep <package name>

ve harika çalıştı

Çalıştırılan pencerelerde:

npm list | find <package name>

PowerShell çalıştırmasında:

npm list | sls <package name>

3
findsürümü benim için çalışmıyor - alıntı dize bile, ama powershell iyi çalışıyor
fiat

4
Windows kullanıcıları için: npm list -g --depth=0 |find "<package name>" Not çift tırnak
robe007

56

Paketin kökünden şunları yapın:

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

EDIT : (bu yüzden cdzaten orada değilseniz modülün ana dizinine gerekir. Modülü ile yüklediyseniz npm install, o zaman altında olacak node_modules/<module_name>)

DÜZENLEME 2 : @ jeff-dickey'den cevap başına güncellenmiştir


Güzel! Diğer cevapların önerdiği gibi (npm listesi) çalıştırmaktan biraz daha hızlı (~ 20s yerine ~ 1s) - en azından bu kod snippet'ini hazırladığınızda! (bunu yapmak için gerçekten bir npm eklentisi olmalı ...)
Venryx

1
veyanode -p "require('./package.json').version"
Jeff Dickey

2
^ ~
geedew

21

Yerel paketler için

npm list --depth=0

Global paketler için

npm list  -g --depth=0

21

Yukarıdaki cevaplardan bazılarını birleştirmek ve süper basit ve süper hızlı bir arama üretir.
Proje kökünden çalıştırın. cdHerhangi bir klasöre gerek yok , sadece 1 satır:

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


21

Sürümü şu komutla da kontrol edebilirsiniz:

npm info <package name> version


29
Yine, yüklü olan paketin sürümünü değil, paket kayıt defterinde bulunan en son sürümü gösterir.
David Ferenczy Rogožan

@DawidFerenczy npm info httpaction
Nitin

16

Jq yüklemeyi kabul ediyorsanız , JSON çıktısını kullanabilirsiniz npm list.

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

veya ayrıntılı olmak istiyorsan

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

Örneğin:

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

Ayrıca, JSON biçimi genel paketler için biraz farklıdır, bu nedenle sorguyu değiştirmeniz gerekir.

Örneğin:

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

14

Yeterince cesursanız (ve nodeyüklediyseniz), her zaman aşağıdaki gibi bir şey yapabilirsiniz:

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

Bu, geçerli paketin sürümünü basacaktır. Ayrıca delirmek için değiştirebilirsiniz, şöyle:

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

Bu WHATEVER_PACKAGE_NAMEpaketin göreceği baskıyı basacaktır npm version.


node -e "console.log(require('./package.json').version);"
papiro

12

Yüklü tüm paketleri yerel veya global olarak görmek için şu komutları kullanın:

  1. npm listyerel paketler veya npm list -gglobal olarak kurulmuş paketler için.
  2. npm list --depth=0
  3. npm list | sls <package name>
  4. node -v


10

Tam olarak bunu yapan bir araç geliştirdim - qnm

qnm - node_modulesDizini sorgulamak için basit bir CLI yardımcı programı .

Kullanarak yükleyin:

npm i --global qnm

ve koş:

qnm [module]

Örneğin:

> qnm lodash

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

Biz hangi araç lodashkökünde yüklü node_modulesve diğer iki nüsha node_modulesarasında cli-table2ve karma.

Gerçekten hızlı ve sekme tamamlama ve eşleme arama gibi bazı güzel özelliklere sahip.


9

Sürüm numarasına sahip yerel paketleri listelemek için şunu kullanın:

npm ls --depth=0

Sürüm numarasına sahip genel paketleri listelemek için şunu kullanın:

npm ls -g --depth=0


8

Sen kullanabilirsiniz npm görünümü [modül] versiyonunu , npm bilgi [modül] versiyonunu , npm gösterisi [modül] sürümünü veya npm v [modül] sürümünü yüklü bir npm modülünde sürümünü kontrol etmek.

Diyelim ki benim homurdanma modülü sürümü 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
Bunların tümü, şu anda yüklü olan sürümü değil, en yeni sürümü gösterir
sth

8

npm list --depth 0 sürümü olan tüm kitaplıkları gösteren komuttur, ancak npm-check

npm-check, kitaplık sürümlerini, yeni sürüm güncellemesini ve kullanılmayan sürümü ve daha fazlasını gösterecek olan sürüm sistemi olayıyla ilgili tüm bu şeyleri yönetmek için iyi bir kütüphanedir.

yüklemek için sadece çalıştırın

npm install -g npm-check

ve sadece koş

npm-check

paket sürümü, yeni sürüm güncellemesi ve kullanılmayan sürüm hakkında her şeyi gösteren ekran görüntüsünü kontrol edin.

resim açıklamasını buraya girin

Küresel olarak da çalışır. bir şans ver. Umarım bu birine yardım eder.


7

Genel olarak yüklenmiş bir npm paketinin sürüm dizesini döndüren taşınabilir bir Unix ( grepve kullanarak sed) tek astarı ( bunun yerine yerel paketleri sorgulamak için g' -pgden kaldırın ):

$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'
0.4.5
  • şu şekilde npm llbiçimlendirilebilir ayrıştırılabilir bir dize çıktılar /usr/lib/node_modules/npm:npm@2.14.8:;
  • grepKomut arasında bir değer özler @ve :dahil;
  • sedKomut çevreleyen karakterleri kaldırır.

6

Bunu .bashrc'ye ekledim

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

Şimdi tek yapmam gereken türü:

  • npm sürümü için npmv örn .:NPM version is: 4.2.0
  • Yerel sürüm için npmv <paket-adı> ör:0.8.08
  • Global sürüm için npmv <paket-adı> g örneğin:0.8.09
  • npmv <package-name> l en son sürüm için örneğin:0.8.10

Kesme komutundaki not -d, @ işaretini ve ardından @ işaretini ifade eder, sonra f, @ sembolünün her iki tarafında bir tane olacağı için 2. alan anlamına gelir.


5

Bunu deneyebilirsiniz: npm show {package} versionen son paket sürümünü gösterir. Paketiniz eskiyse, npm outdatedsürüm bilgileriyle birlikte gösterilecektir.


2
OP, paket kayıt defterinde bulunan en son sürümü değil, şu anda yüklü olan paketin sürümünü soruyordu .
David Ferenczy Rogožan

5

Bu basit bir soru ve yukarıda gördüğümden daha basit bir cevabı olmalı.

Yüklü npm paketlerini sürümleriyle birlikte görmek için, komut npm ls --depth=0varsayılan olarak yerel olarak nelerin yüklendiğini görüntüler. Küresel kurulu paketleri görmek için eklemek -globalargüman: npm ls --depth=0 -global.

--depth=0 bağımlılıkları olmadan kurulu paketlerin bir listesini döndürür, bu da çoğu zaman yapmak istediğiniz şeydir.

lskomutunun adıdır ve list bir diğer adıdır için ls.


3

Erişmek package.json

Paketin package.jsonveya bower.jsonpaketine şunlarla erişebilirsiniz :

notepad ./node_modules/:packageName/package.json

Bu açılacaktır package.jsonin notepadsahiptir version numberve :packageNamesen dahil command.

Örneğin :

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

İyi şanslar.


6
Bunu yapmanın çok daha kolay yolları değil, paketinizde belirttiğiniz sürüm. Semson aralığı gösterimleri nedeniyle aslında yüklü sürüm olmayabilir. Yani, bir bağımlılık sürüm ^ 1.3.0 olarak belirtilebilir, ancak bu sürüm 1.3.0'dan 1.99.99'a kadar olan herhangi bir anlama gelebilir
Eşzamanlı

3

Npm view any-promise (modül adınız) -v'yi kullanabiliriz


1
Bu, yerel dizindeki sürümü değil, kullanılabilir en son sürümü gösterir.
christianbundy

@christianbundy npm listesini kullanabilirsiniz - depth = 0 | grep uuid
Nitin.

Kullanmak zorundaydım npm list --depth=0 | grep uuid | awk '{ print $2; }' | cut -d '@' -f 2, ama evet, bu üst düzey bir bağımlılık olduğu sürece işe yarıyor. Orijinal soruya dayanarak her zaman böyle olduğunu sanmıyorum.
christianbundy


0

Çok basit ... Sadece satırın altında

npm view < package-name > version

** Misal **

npm view redux version

Ben redux 7.2.0 sürümü var

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.