В package-lock.json
npm v5.2+
имеется файл package-lock.json
, который создается при установке пакетов.Этот файл должен быть версионным, потому что он содержит информацию о каждом установленном пакете.
Тогда возникает идея, что вместо использования package.json для разрешения и установки модулей npm будет использовать package-lock.json,Поскольку пакет-блокировка указывает версию, местоположение и хэш целостности для каждого модуля и каждой из его зависимостей, создаваемая им установка будет одинаковой каждый раз.Не имеет значения, на каком устройстве вы находитесь, или когда в будущем вы его установите, он должен каждый раз давать один и тот же результат, что очень полезно.
Итак, если package-lock.json
блокируетсяв версии установленных пакетов, в чем проблема с использованием "latest"
?
Проблема заключается в том, что ваш package.json
не имеет смысла.
- Ваш
package.json
не имеетсказать, какая версия фактически установлена, даже не догадываясь. - Что, если кто-то переопределит
package-lock.json
или удалит его.
Это не конец света, ноналичие package.json
должно дать нам представление о пакетах, которые мы установили.
Конечно, вы можете увидеть список установленных пакетов с версиями: npm list --depth=0
, а также, если вы хотите обновить пакеты, выможете просмотреть список устаревших: npm outdated
Ознакомьтесь с этой статьей: Все, что вы хотели знать о package-lock.json, но боялись спросить .