Npm `wanted` vs` last`

Я использую npm для установки некоторых инструментов командной строки. Имея зуд, чтобы всегда быть в курсе, я нашел команду npm -g outdated.

В чем разница между столбцами wanted и latest?

В документации указано:

Полученное поле "хочет" показывает последнюю версию в соответствии с версию, указанную в package.json, поле "последнее" последней версии пакета.

Однако я не понимаю этого. Например, в моей системе я получаю:

Package  Current  Wanted  Latest  Location
cordova    5.3.1   5.3.3   5.3.1  lib
npm        3.3.4   3.3.4   3.3.3  lib

Как wanted может быть выше latest? Кажется, это противоречит:

поле "последняя" самая последняя версия пакета

Какую версию следует обновить до (я использую только командную строку, а не код node.js)?

Ответ 1

Поле wanted не имеет смысла в контексте -global run, так как нет package.json, чтобы определить, какая версия вам нужна.

Какую версию следует обновить до (я использую только командную строку, а не код node.js)?

Последняя версия кажется хорошим выбором, если вам нравится жить на краю.

Желаемый столбец выглядит как ошибка, о нем сообщается в github many times.

Обновление (после проверки источника)

Документация кажется немного вводящей в заблуждение, поэтому давайте уточним:

Полученное поле "хочет" показывает последнюю версию в соответствии с версией, указанной в пакете .json...

Поскольку глобального пакета package.json нет, используемая версия constrain '*' (установите здесь).

Тогда требуемая версия - это последняя версия пакета в соответствии с semver.

поле "последняя" - самая последняя версия пакета.

То, что вы получаете, это dist-tag "последний", который обычно соответствует последней версии (см. здесь). Есть несколько пакетов, которые используют эти теги для управления показаниями (например, npm).

Какую версию следует обновить до (я использую только командную строку, а не код node.js)?

Кажется, что ребро требуется.

Ответ 2

Update:

На моей машине в настоящее время npm -g outdated показано:

Package         Current  Wanted  Latest  Location
babel-cli        6.1.18   6.2.0   6.2.0
generator-rise    1.7.0   2.1.0   2.1.0
npm               3.3.6   3.5.0   3.4.1

Версия 3.5.0 существует как релиз на github, но пока не опубликован в npm. Таким образом, это как-то подхватывается оттуда, но замаскивается над источником npm. Я не мог найти никаких доказательств, подтверждающих этот аргумент.


Из официальной документации :

Полученное поле "хочет" показывает последнюю версию в соответствии с версию, указанную в package.json, поле "последнее" последней версии пакета.

Разработать:

npm позволяет указать диапазон версий в вашем пакете. json, примеры доступны здесь. Максимальная версия, которая может быть размещена в указанном диапазоне, - это столбец wanted.

Это может отличаться от установленной версии (если вообще), потому что пакет package.json, возможно, изменился в то же время, или автор, возможно, нажал новый младший выпуск между ними.