Как просмотреть дерево зависимостей данного модуля npm?

156

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

npm llвыполняет работу для локально установленных пакетов. Но это не работает для модулей, которые не установлены, или модулей, установленных глобально.

Я пробовал npm list bowerно это не то.

BiAiB
источник
1
Если все, что вам нужно, - это граф зависимостей, npm.broofa.com и npm.anvaka.com сделают это для публично опубликованных модулей.
broofa
@broofa спасибо за ссылки! Предлагаю вам разместить их в качестве ответов. Я проверил, что на @ angular / cli и npm.anvaka.com вялый и нечитаемый, но npm.broofa.com отлично справляется с этим
BiAiB

Ответы:

114

Вы можете использовать npm-remote-lsмодуль. Вы можете установить его глобально:

npm install -g npm-remote-ls

А потом звоните:

npm-remote-ls bower

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

npx npm-remote-ls bower
Герго Эрдози
источник
8
Как увидеть модули, зависящие от данного модуля?
orad
2
это еще нужно? даже с более новыми версиями npm?
Simon_Weaver
1
для конкретной версии вы можете использовать этот синтаксисnpm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver
2
@orad: Если он у вас установлен, npm ls
Пол Линч
148

Вы можете создавать деревья зависимостей NPM без необходимости установки зависимости с помощью команды

npm list

Это сгенерирует дерево зависимостей для проекта в текущем каталоге и распечатает его на консоли.

Вы можете получить дерево зависимостей конкретной зависимости следующим образом:

npm list [dependency]

Вы также можете установить максимальный уровень глубины, выполнив

npm list --depth=[depth]

Обратите внимание, что вы можете просматривать дерево зависимостей только той зависимости, которую вы установили глобально или локально для проекта NPM.

мгтома99
источник
12
Ваш второй печатает только пакеты, зависящие от [dependency], он не печатает зависимости [dependency]. OP также специально сказал, что это не то, что он ищет.
FINDarkside
7
Используйте -prodтолько для вывода списка производственных зависимостей (без devDependencies).
pcworld
3
npm list и npm ls читают папку node_modules, вы не можете получить дерево без предварительной установки зависимостей.
Ворк,
npm list --depth = 1 для одного уровня
mintedsky
83

Этот сайт позволяет вам просматривать дерево пакетов в виде графа узлов в 2D или 3D.

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

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

Отличная работа от @Avanka!

Стэн Бонди
источник
5
Замечательно " 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
1
@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.

мсангел
источник
7

Вы можете использовать howfat, который также отображает статистику зависимостей:

npx howfat -r tree jasmine

ширма

Алексей Прохоров
источник
6

Просмотреть все метаданные о модуле 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

Позволяет использовать свою команду info для просмотра точных зависимостей:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies

Роберт Бризита
источник
1
Почему yarn предоставляет точный способ просмотра зависимостей, а npm НЕ предоставляет возможности просматривать зависимости, может ли это быть из-за того, что npm не детерминирован, а yarn - нет?
Брайан Огден,
0

Чтобы получить его в виде списка:

% npx npm-remote-ls --flatten dugite -d false -o false
[
  'dugite@1.91.3',
  'checksum@0.1.1',
  'progress@2.0.3',
  'mkdirp@0.5.5',
  'rimraf@2.7.1',
  'tar@4.4.13',
  'optimist@0.3.7',
  'got@9.6.0',
  'minimist@1.2.5',
  'chownr@1.1.4',
  'glob@7.1.6',
  'fs-minipass@1.2.7',
  'minizlib@1.3.3',
  'minipass@2.9.0',
  'safe-buffer@5.2.1',
  'yallist@3.1.1',
  'wordwrap@0.0.3',
  '@szmarczak/http-timer@1.1.2',
  'cacheable-request@6.1.0',
  '@sindresorhus/is@0.14.0',
  'decompress-response@3.3.0',
  'duplexer3@0.1.4',
  'lowercase-keys@1.0.1',
  'mimic-response@1.0.1',
  'get-stream@4.1.0',
  'to-readable-stream@1.0.0',
  'p-cancelable@1.1.0',
  'url-parse-lax@3.0.0',
  'fs.realpath@1.0.0',
  'inflight@1.0.6',
  'inherits@2.0.4',
  'once@1.4.0',
  'path-is-absolute@1.0.1',
  'minimatch@3.0.4',
  'defer-to-connect@1.1.3',
  'clone-response@1.0.2',
  'get-stream@5.2.0',
  'http-cache-semantics@4.1.0',
  'lowercase-keys@2.0.0',
  'responselike@1.0.2',
  'keyv@3.1.0',
  'pump@3.0.0',
  'prepend-http@2.0.0',
  'normalize-url@4.5.0',
  'wrappy@1.0.2',
  'brace-expansion@1.1.11',
  'json-buffer@3.0.0',
  'end-of-stream@1.4.4',
  'concat-map@0.0.1',
  'balanced-match@1.0.0'
]
林 东吴
источник