При установке пакета с помощью 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/”