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, возможно, изменился в то же время, или автор, возможно, нажал новый младший выпуск между ними.