Просмотр локальных пакетов NPM, которые зависят от пакета X
Я получаю немного node-gyp
предупреждения для конкретного пакета NPM, в данном случае это пакет "get-cursor-position". Я хотел бы узнать, какие пакеты в моем локальном каталоге node_modules зависят от этого пакета. (Это может быть нелегко сделать).
Если я бегу:
$ npm view get-cursor-position
Я получил:
{ name: 'get-cursor-position',
description: 'Get the cursor\'s current position in your terminal.',
'dist-tags': { latest: '1.0.3' },
versions:
[ '0.0.1',
'0.0.2',
'0.0.4',
'0.0.5',
'1.0.0',
'1.0.1',
'1.0.2',
'1.0.3' ],
maintainers: [ 'bubkoo <bubkoo@163.com>' ],
time:
{ modified: '2016-11-01T02:36:07.728Z',
created: '2016-03-05T03:42:31.517Z',
'0.0.1': '2016-03-05T03:42:31.517Z',
'0.0.2': '2016-03-07T00:35:36.627Z',
'0.0.4': '2016-03-10T07:21:21.364Z',
'0.0.5': '2016-03-10T07:25:04.846Z',
'1.0.0': '2016-04-16T08:11:34.546Z',
'1.0.1': '2016-06-03T15:57:55.767Z',
'1.0.2': '2016-06-13T14:19:32.966Z',
'1.0.3': '2016-11-01T02:36:07.728Z' },
homepage: 'https://github.com/bubkoo/get-cursor-position',
keywords: [ 'terminal', 'console', 'cursor', 'position', 'ansi', 'escape' ],
repository:
{ type: 'git',
url: 'git+https://github.com/bubkoo/get-cursor-position.git' },
author: 'bubkoo <bubkoo.wy@gmail.com>',
bugs: { url: 'https://github.com/bubkoo/get-cursor-position/issues' },
license: 'MIT',
readmeFilename: 'README.md',
version: '1.0.3',
main: 'index.js',
scripts:
{ test: 'echo "Error: no test specified" && exit 1',
install: 'node-gyp rebuild' },
gypfile: true,
gitHead: '56d403bb0e554532d17c403c47421ce8d2db2dec',
dist:
{ shasum: '0e41d60343b705836a528d69a5e099e2c5108d63',
tarball: 'https://registry.npmjs.org/get-cursor-position/-/get-cursor-position-1.0.3.tgz' },
directories: {} }
Я верю, что npm view будет просто искать удаленные данные для пакета, я рад использовать агрегированные данные в NPM, показывая все пакеты, которые зависят от get-cursor-position
, и я могу сделать некоторую ручную работу на моем конце, чтобы сравнить с локальными пакетами.
Я также попробовал:
npm ls foo
В моем случае я попытался:
npm ls suman-events
и это, казалось, не подняло то, что я ожидал это поднять. Я бы ожидал, что это поднимет "suman-example-reporter" в моем случае =>
Как вы можете видеть на рисунке ниже, "suman-example-reporter" является прямой зависимостью в моем проекте (он находится в package.json), а suman-example-reporter зависит от "suman-events" (и "suman-events" также в package.json, потому что это также прямая зависимость моего проекта).
Кто-нибудь знает, как это сделать правильно?
3 ответа
Как предположил Райан в комментариях, npm ls <package>
покажет дерево зависимостей, относящееся к указанному пакету, чтобы вы могли видеть, какие пакеты прямо / косвенно требуют этого.
Например, если вы установите rimraf
, once
является зависимостью, и вы можете посмотреть, какой пакет вызывает его установку:
$ npm ls once
yourpackage@1.0.0 /path/to/pkg
└─┬ rimraf@2.5.4
└─┬ glob@7.1.1
└── once@1.4.0
Следовательно, вы можете видеть, что once
был установлен, потому что glob
требует этого, и rimraf
(который я указал в моем package.json
) зависел от glob
,
Если требуется расширенная информация, используйте npm ls --long
(или это сокращенный синтаксис, npm la
/ npm ll
). Расширенный вывод также будет включать описание модуля, ссылку на репозиторий Git, README и определенно будет включать каждый модуль в дереве (некоторые могут быть пропущены с основными npm ls
).
npm ls <options>
Команда определенно то, что вы хотите.
@ Аврора ответ в основном правильный
Вот документы для команды:
это говорит
Msgstr "При запуске как ll или la, он показывает расширенную информацию по умолчанию."
Итак, чтобы получить полный список зависимостей в вашем проекте, которые зависят от x, попробуйте:
$ npm la x
вместо
$ npm ls x
На странице npmjs.com перечислены все зависимые пакеты. В этом случае их всего 5.