NPM: установка определенной версии пакета
NPM или Node Package Manager - это мощный инструмент, который позволяет вам легко управлять зависимостями, запускать сценарии и организовывать метаданные проекта. Однако его основная цель - помочь вам загрузить и установить пакеты Node из своего репозитория в ваш проект.
Загрузка и установка пакета выполняется с помощью команды NPM install
:
$ npm install express
+ express@4.17.1
added 50 packages from 37 contributors and audited 126 packages in 3.262s
found 0 vulnerabilities
Когда вы выполняете команду install
, подобную этой, по умолчанию она получает последнюю версию указанного пакета, которая в данном случае v4.17.1 (на момент написания этой статьи).
Но что, если нам нужна другая версия? Возможно, эта последняя версия нарушает нужную нам функцию, или, может быть, в ней есть уязвимость безопасности, которую разработчик еще не удосужился исправить. В таких случаях вы, вероятно, захотите установить конкретную версию пакета, который, как вы знаете, работает или который, как вы знаете, «безопасен».
Для этого мы можем указать версию, используя синтаксис npm install [package]@[version]
. Продолжая наш пример выше, мы выполнили бы что-то вроде этого:
$ npm install express@4.16.1
+ express@4.16.1
added 48 packages from 36 contributors and audited 121 packages in 2.986s
found 0 vulnerabilities
Как видите, NPM установил указанный нами пакет.
С NPM у нас также есть другие варианты для указания версии пакета. Используя каретку (^
) или тильду (~
), мы можем указать последнюю минорную версию или версию патча соответственно. Таким образом, вы можете указать совместимую версию пакета, но все равно получите самую последнюю версию.
Так, например, если вы хотите использовать Express версию 4.16, но версия патча не важна, вы можете использовать тильду, чтобы сообщить NPM и получить последнюю версию патча:
$ npm install express@~4.16.1
+ express@4.16.4
added 48 packages from 36 contributors and audited 121 packages in 3.02s
found 0 vulnerabilities
Так как мы добавили префикс к версии ~
, NPM получил последнюю версию патча под второстепенной версией 4.16, которая оказалась 4.16.4.
Это хорошо, когда вам не нужна конкретная версия, но вы хотите постоянно обновлять свои зависимости с помощью последних исправлений и исправлений уязвимостей.