Обновление npm не обновляет версию в файле package.json

Я пытаюсь обновить определенный пакет в своем проекте. Я проверил это с помощью npm outdated, а затем запускаю эту команду для обновления этого пакета: npm update nameofpackage т. е. npm update slugify.

После этого мой файл package.json не обновляется, хотя, когда я снова запускаю устаревший npm, он не показывает устаревший пакет. Это означает, что он был обновлен, но мой файл package.json по-прежнему показывает более старую версию пакета.

Пожалуйста, дайте мне знать, как я могу также обновить файл package.json. Я тоже пробовал npm update slugify --save, но мне не помогло.

«когда я снова запускаю устаревший npm, он не показывает устаревший пакет» - так в чем проблема? Это ожидаемое поведение. npm update установит последнюю версию уже разрешено спецификацией semver в файле пакета и обновит файл блокировки. Например. для slugify версии ^1.2.3 последняя версия 1.6.5 уже будет в пределах досягаемости. Если вы не знакомы с semver, посмотрите, например. semver.npmjs.com.
jonrsharpe 04.04.2022 11:00

Кроме того, когда вы запускаете npm install, он устанавливает последний доступный пакет (относительно semver). Так что, например, если ваш package.json содержит "slugify": "^1.0.0", а последней доступной версией является 1.9.9, он установит версию 1.9.9 на npm install или npm update. Нет необходимости изменять package.json.

derpirscher 04.04.2022 11:09

@derpirscher обратите внимание, если есть файл блокировки npm installне будет, обязательно установите последнюю версию, она установит конкретную разрешенную версию. Отсюда npm update, который обновляет файл блокировки до последней совместимой версии.

jonrsharpe 04.04.2022 11:13

Я использую npm-check-обновления для этого, работает как шарм

Jeremy Thille 04.04.2022 11:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Цель команды npm update — обновить ваш package-lock.json в соответствии с тем, что вы указали в файле package.json. Это нормальное поведение.

Если вы хотите обновить файл package.json, вы можете использовать npm-check-обновления: npm install -g npm-check-updates.

Затем вы можете использовать эти команды:

  1. ncu Проверяет наличие обновлений из файла package.json
  2. ncu -u Обновите файл package.json.
  3. npm update Обновите файл package-lock.json из файла package.json.

Другие вопросы по теме