Belirli bir npm modülünün bağımlılık ağacı nasıl görüntülenir?


145

Bir modülün ağacını npm tarafından kullanılabilir, ancak yerel olarak yüklenmemiş hale nasıl getirebilirim?

npm llyerel olarak kurulmuş paketler için iş yapar. Ancak, kurulu olmayan veya global olarak kurulan modüller için çalışmaz.

Denedim npm list bowerama o kadar değil.

Yanıtlar:


112

npm-remote-lsModülü kullanabilirsiniz . Global olarak yükleyebilirsiniz:

npm install -g npm-remote-ls

Ve sonra arayın:

npm-remote-ls bower

Alternatif olarak, npm@5.2.0yüklendikten sonra npxkomutu global olarak yüklemek ve kullanmaktan kaçınabilirsiniz - sadece arayın:

npx npm-remote-ls bower

8
Belirli bir modüle bağlı modülleri nasıl görebilirim?
orad

2
bu hala gerekli mi? npm'in yeni sürümlerinde bile?
Simon_Weaver

1
belirli bir sürüm için bu sözdizimini kullanabilirsiniznpm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver

2
@orad: Eğer yüklediyseniz, npm ls
Paul Lynch

132

Komutunu kullanarak bir bağımlılık yüklemeye gerek kalmadan NPM bağımlılık ağaçları oluşturabilirsiniz

npm list

Bu, geçerli dizinde proje için bir bağımlılık ağacı oluşturur ve konsola yazdırır.

Aşağıdaki gibi belirli bir bağımlılığın bağımlılık ağacını alabilirsiniz:

npm list [dependency]

Maksimum derinlik seviyesini ayrıca

npm list --depth=[depth]

NPM projesine yalnızca genel olarak veya yerel olarak yüklediğiniz bir bağımlılığın bağımlılık ağacını görüntüleyebileceğinizi unutmayın.


11
İkincisiniz sadece [bağımlılık] 'a bağlı olan paketleri yazdırır, [bağımlılık]' ın bağımlılıklarını yazdırmaz. OP ayrıca özellikle bunun aradığı şey olmadığını söyledi.
FINDarkside

7
-prodYalnızca üretim bağımlılıklarını listelemek için kullanın (ve devDependencies yok).
pcworld

3
npm listesi ve npm ls her ikisi de node_modules klasörünü okur, önce bağımlılıkları yüklemeden bir ağaç alamazsınız.
worc

npm listesi - derinlik = 1 bir seviye için
mintedsky


26

İşte güçsüz resmi komut:

npm view <PACKAGE> dependencies

Tüm ağacı değil, yalnızca doğrudan bağımlılıkları yazdırır .


3
Paketin kurulması gerekiyor mu? .\npm view core-js dependenciesmakinemde hiçbir şey döndürmüyor.
duct_tape_coder

@duct_tape_coder Hayır, yüklenmesi gerekmez. core-jsbağımlılığı yoktur.
Cameron Hudson

9

Belirli bir paketin aslında bağımlılık yolunu almak ve neden pakete sahip olduğunuzu bilmek istiyorsanız, basitçe sorabilirsiniz yarn why <MODULE>. misal:

    $> yarn why mime-db
    yarn why v1.5.1
    [1/4] Why do we have the module "mime-db"...?
    [2/4] Initialising dependency graph...
    [3/4] Finding dependency...
    [4/4] Calculating file sizes...
    => Found "mime-db@1.37.0"
    info Reasons this module exists
       - "coveralls#request#mime-types" depends on it
       - Hoisted from "coveralls#request#mime-types#mime-db"
    info Disk size without dependencies: "196kB"
    info Disk size with unique dependencies: "196kB"
    info Disk size with transitive dependencies: "196kB"
    info Number of shared dependencies: 0
    Done in 0.65s.


5

Npm module ile ilgili tüm meta verileri görüntüleyin

npm view mongoose(module name)

Modülün Tüm Bağımlılıklarını Görüntüle

npm view mongoose dependencies

Tüm Sürüm veya Sürümler modülünü görüntüle

npm view mongoose version
npm view mongoose versions

Tüm anahtar kelimeleri görüntüle

npm view mongoose keywords


1

Ne yazık ki npm'nin hala kurulu olmayan paketlerin bağımlılıklarını görüntülemesinin bir yolu yoktur. Bir paketin sayfası bile değil bağımlılıkları doğru şekilde listelemez. 🙄

Neyse ki iplik takma :

brew install yarn

Doğru bağımlılıkları görüntülemek için kişinin info komutunu kullanmasına izin verir:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


1
İplik neden bağımlılıkları görmek için doğru bir yol sağlar ve npm bağımlılıkları görüntülemek için HİÇBİR yol sunmaz, bunun nedeni npm'nin deterministik olmaması ve ipliğin olması olabilir mi?
Brian Ogden
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.