Рубрики
Без рубрики

Обновите все зависимости узлов до их последней версии

Как обновить все хранилища зависимостей npm в файле package.json до их последней доступной версии?

При установке пакета с помощью npm install <имя_пакета> загружается последняя доступная версия пакета и помещается в папку node_modules , а в package.json добавляется соответствующая запись и package-lock.json файлы, которые присутствуют в вашей текущей папке.

npm вычисляет зависимости и также устанавливает последнюю доступную версию этих зависимостей.

Допустим, вы устанавливаете cowsay , классный инструмент командной строки, который позволяет заставить корову говорить вещи .

Когда вы npm устанавливаете cowsay , эта запись добавляется в файл package.json :

{
  "dependencies": {
    "cowsay": "^1.3.1"
  }
}

и это выдержка из package-lock.json , где я удалил вложенные зависимости для ясности:

{
  "requires": true,
  "lockfileVersion": 1,
  "dependencies": {
    "cowsay": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/cowsay/-/cowsay-1.3.1.tgz",
      "integrity": "requires": {
        "get-stdin": "^5.0.1",
        "optimist": "~0.6.1",
        "string-width": "~2.1.1",
        "strip-eof": "^1.0.0"
      }
    }
  }
}

Теперь эти 2 файла сообщают нам, что мы установили версию 1.3.1 конечно, и наше правило для обновлений – ^1.3.1 , что для правил управления версиями npm означает, что npm может обновляться до исправлений и второстепенных выпусков: 1.3.2 , 1.4.0 и так далее.

Но не для серьезных изменений версии, которые нарушают совместимость, что означает, в данном примере, 2.0 и выше.

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

package.json остается неизменным.

Чтобы обнаружить новые версии пакетов, вы запускаете npm устаревший .

Вот список нескольких устаревших пакетов в одном репозитории, которые я не обновлял довольно долго:

Некоторые из этих обновлений являются основными выпусками. Запуск обновление npm не обновит их версию. Основные выпуски никогда не обновляются таким образом, потому что они (по определению) вносят критические изменения, и npm хотят избавить вас от проблем.

Чтобы обновить все пакеты до новой основной версии, установите npm-check-updates пакет глобально:

npm install -g npm-check-updates

затем запустите его:

ncu -u

это приведет к обновлению всех подсказок о версии в файле package.json до зависимостей и Зависимости от разработчиков , чтобы npm мог установить новую основную версию.

Теперь вы готовы запустить обновление:

npm update

Если вы только что загрузили проект без зависимостей node_modules и хотите сначала установить новые версии, просто бежать

npm install

Оригинал: “https://flaviocopes.com/update-npm-dependencies/”