Як переглянути дерево залежності заданого npm-модуля?


143

Як я можу отримати дерево модуля доступним до npm, але не встановленого локально?

npm llвиконує роботу для локально встановлених пакетів. Але це не працює для модулів, які не встановлені, або модулів, встановлених глобально.

Я спробував, npm list bowerале це не все.

Відповіді:


112

Ви можете використовувати npm-remote-lsмодуль. Ви можете встановити його в усьому світі:

npm install -g npm-remote-ls

А потім телефонуйте:

npm-remote-ls bower

Крім того, npm@5.2.0встановлений тоді ви можете використовувати npxта уникати глобальної установки команди - просто зателефонуйте:

npx npm-remote-ls bower

7
Як бачити модулі, які залежать від даного модуля?
orad

2
це ще потрібно? навіть з новішими версіями npm?
Simon_Weaver

1
для конкретної версії ви можете використовувати цей синтаксисnpm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver

2
@orad: Якщо він встановлений у вас, npm ls
Пол Лінч

132

Ви можете генерувати дерева залежності NPM без необхідності встановлювати залежність за допомогою команди

npm list

Це створить дерево залежності для поточного каталогу та надрукує його на консоль.

Ви можете отримати дерево залежності певної залежності, наприклад:

npm list [dependency]

Ви також можете встановити максимальний рівень глибини, виконавши

npm list --depth=[depth]

Зауважте, що ви можете переглядати лише дерево залежності залежності, яке ви встановили в глобальному чи локальному масштабі для проекту NPM.


11
Ваш другий друкує лише пакети, які залежать від [залежності], він не друкує залежності [залежність]. ОП також спеціально сказав, що це не те, що він шукає.
FINDarkside

7
Використовуйте -prodлише для переліку виробничих залежностей (і відсутність залежностей від devDependitions).
pcworld

3
npm list і npm ls читають папку node_modules, ви не можете отримати дерево, не встановивши спочатку залежності.
worc

npm list --depth = 1 для одного рівня
mintedsky

81

Цей сайт дозволяє переглядати дерево пакетів як графік вузла в 2D або 3D.

http://npm.anvaka.com/#/view/2d/waterline

введіть тут опис зображення

Чудова робота від @Avanka!


4
Дивовижна " npm.anvaka.com/#/view/2d/no-one-left-behind " "Залежить від кожного пакета в npm". : D
OZZIE

Вибиває хек з Chrome 79.0.3945.130 (Офіційна збірка) (64-розрядна) на Mac
Брайан Огден

26

Ось непосильна офіційна команда:

npm view <PACKAGE> dependencies

Він друкує лише прямі залежності , а не все дерево.


3
Чи повинен бути встановлений пакет? .\npm view core-js dependenciesнічого не повертає на мою машину.
duct_tape_coder

@duct_tape_coder Ні, його не потрібно встановлювати. core-jsне має залежностей.
Камерон Хадсон

9

Якщо ви хочете отримати власне шлях залежності певного пакету і хочете знати, чому він у вас є, ви можете просто запитати yarn why <MODULE>. приклад:

    $> 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-модуль

npm view mongoose(module name)

Переглянути всі залежності модуля

npm view mongoose dependencies

Переглянути всі версії або модуль версій

npm view mongoose version
npm view mongoose versions

Переглянути всі ключові слова

npm view mongoose keywords


1

На жаль, у npm досі немає способу перегляду залежностей від невстановлених пакетів. Навіть не пакет сторінки перелічено залежності залежно. 🙄

На щастя, встановлення пряжі :

brew install yarn

Дозволяє користуватися інформаційною командою для перегляду точних залежностей:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


1
Чому пряжа забезпечує точний спосіб перегляду залежностей, а npm не забезпечує спосіб перегляду залежностей. Це може бути, тому що npm не є детермінованим, а пряжа є?
Брайан Огден
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.