"Мне кажется, что связь с зависимостями на сайте npm применима только к текущей / последней версии."
Да, это правильно, www.npmjs.com
будет только отображать зависимости для последней версии пакета.
Вот несколько способов узнать, что вам нужно как программно, так и непрограммно.
Программно:
Используя команду npm view
со следующим синтаксисом;
npm view <pkg_name> versions --json
получает список всех версий, доступных дляуказанный пакет в реестре npm.
Примечание: Часть <pkg_name>
, указанную выше, должна быть заменена реальным именем пакета.
Например,;выполнив следующую команду, скажем, для пакета eslint :
npm view eslint versions --json
выводит на консоль следующее:
[
"0.0.4",
"0.0.5",
"0.0.6",
"0.0.7",
"0.1.0-dev",
"0.1.0",
"0.1.1",
"0.1.2",
...
]
Теперь мы знаем, какие версии доступны, допустим, мы хотим перечислить зависимостей для eslint
версии 0.1.2
. Мы можем запустить следующую команду:
npm show eslint@0.1.2 dependencies --json
Это напечатает:
{
"optimist": "*",
"estraverse": "~1.3.0",
"esprima": "*",
"escope": "1.0.0"
}
Аналогично, мы можем обнаружить devDependencies для eslint
версии 0.1.2
, выполнив следующую команду:
npm show eslint@0.1.2 devDependencies --json
Это даст что-то вроде этого:
{
"vows": "~0.7.0",
"sinon": "*",
"commonjs-everywhere": "~0.9.0",
"mocha": "~1.13.0",
"chai": "~1.8.1",
"grunt": "~0.4.1",
...
}
Если вы знаете, что пакет заранее имеет определенную зависимость.
Например;ретроспективно после выполнения вышеупомянутой команды мы теперь знаем, что eslint
версия 0.1.2
имеет escope
в качестве зависимости.
Итак, если мы хотим узнать версию escope
, то eslint
версия0.1.2
необходимо, мы можем запустить следующую команду:
npm show eslint@0.1.2 dependencies.escope
^
Примечание: Имя пакета следует за точкой (.
), то есть .escope
Это печатает следующее:
1.0.0
Непрограммный способ
Я не могу придумать причину, по которой вы хотели бы выполнить следующий непрограммный способ вместо вышеупомянутого программного способа, когда у вас есть инструмент CLI, доступный для вас.Однако, если вы предпочитаете ручные задачи, то здесь ...
Примечание : YMMV использует следующие ручные шаги, поскольку это зависит от того, как пакет был обработан / поддержан.
Как правило, исходный код пакета npm будет размещен на GitHub, поэтому вы можете выполнить следующие шаги вручную.Это избавит вас от необходимости загружать пакет для проверки файла package.json .
Для этого мы продемонстрируем для пакета eslint
:
Посетите npmjs.com и введите имя пакета в поле ввода «Поиск пакетов» .Мы введем eslint
и нажмем клавишу возврата.
Далее нажмите eslint
из списка пакетов, и вы попадете на эту страницу .
Нажмите на ссылку github , которая обычно появляется в правой части веб-страницы и выглядит следующим образом:
![github rep link icon](https://i.stack.imgur.com/Ptp46.png)
Это приведет вас к репо eslint
, т.е. этот
ВклНа странице Github нажмите кнопку «Ветвь» , которая появляется над списком файлов исходного кода и выглядит следующим образом:
![Github branch button](https://i.stack.imgur.com/6GZMj.png)
Во всплывающей панели , которая появляется впоследствии, нажмите кнопку «Теги» , затем найдите и щелкните тег версии из списка, который вы хотитеобнаружить его зависимости. (Примечание. Эти имена тегов обычно соответствуют версии, выпущенной / опубликованной для npm)
После этого будут загружены файлы исходного кода в браузере для этого конкретного выпуска / версии.
Найдите файл package.json в списке файлов и щелкните по нему.Это загрузит содержимое package.json в браузер, после чего вы сможете прочитать его и выяснить его зависимости.
Визуализация дерева зависимостей
Я иногда использую этот онлайн-инструмент https://npm.anvaka.com, который может помочь вам визуализировать полное дерево / график зависимостей для данного пакета - однако это только для последней версии пакета.
Здесь - полное дерево / график зависимостей (многоуровневая глубина) для последней версии eslint.