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

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

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

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

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

Когда тыnpm install 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": "sha512-3PVFe6FePVtPj1HTeLin9v8WyLl+VmM1l1H/5P+BTTDkMAjufp+0F9eLjzRnOHzVAYeIYFF5po5NjRrgefnRMQ==",
      "requires": {
        "get-stdin": "^5.0.1",
        "optimist": "~0.6.1",
        "string-width": "~2.1.1",
        "strip-eof": "^1.0.0"
      }
    }
  }
}

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

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

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

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

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

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

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

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

npm install -g npm-check-updates

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

ncu -u

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

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

npm update

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

npm install

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: