Я пытаюсь обновить определенный пакет в своем проекте. Я проверил это с помощью npm outdated
, а затем запускаю эту команду для обновления этого пакета: npm update nameofpackage
т. е. npm update slugify
.
После этого мой файл package.json не обновляется, хотя, когда я снова запускаю устаревший npm, он не показывает устаревший пакет. Это означает, что он был обновлен, но мой файл package.json по-прежнему показывает более старую версию пакета.
Пожалуйста, дайте мне знать, как я могу также обновить файл package.json. Я тоже пробовал npm update slugify --save
, но мне не помогло.
Кроме того, когда вы запускаете npm install
, он устанавливает последний доступный пакет (относительно semver). Так что, например, если ваш package.json
содержит "slugify": "^1.0.0"
, а последней доступной версией является 1.9.9
, он установит версию 1.9.9
на npm install
или npm update
. Нет необходимости изменять package.json.
@derpirscher обратите внимание, если есть файл блокировки npm install
не будет, обязательно установите последнюю версию, она установит конкретную разрешенную версию. Отсюда npm update
, который обновляет файл блокировки до последней совместимой версии.
Я использую npm-check-обновления для этого, работает как шарм
Цель команды npm update
— обновить ваш package-lock.json
в соответствии с тем, что вы указали в файле package.json
.
Это нормальное поведение.
Если вы хотите обновить файл package.json, вы можете использовать npm-check-обновления: npm install -g npm-check-updates
.
Затем вы можете использовать эти команды:
ncu
Проверяет наличие обновлений из файла package.jsonncu -u
Обновите файл package.json.npm update
Обновите файл package-lock.json из файла package.json.
npm update
установит последнюю версию уже разрешено спецификацией semver в файле пакета и обновит файл блокировки. Например. дляslugify
версии^1.2.3
последняя версия 1.6.5 уже будет в пределах досягаемости. Если вы не знакомы с semver, посмотрите, например. semver.npmjs.com.