После обновления моего NPM до последней версии (с 3.X до 5.2.0) и запуска npm install
в существующем проекте, я получаю автоматически созданный package-lock.json
файл.
Я могу сказать, package-lock.json
дает мне точное дерево зависимостей в отличие от package.json
.
Из этой информации кажется, что package.json
она избыточна и больше не нужна.
Обе ли они необходимы для работы NPM?
Безопасно или возможно использовать только package-lock.json
файл?
Документы на package-lock.json ( doc1 , doc2 ) ничего не упоминают об этом.
Редактировать :
Поразмыслив об этом, я пришел к выводу, что если кто-то захочет использовать ваш проект со старой версией NPM (до 5.x), он все равно установит все зависимости, но с менее точными версиями (версиями исправлений).
npm
npm-install
package.json
package-lock.json
Омри Лузон
источник
источник
Ответы:
Вам нужно и то
package-lock.json
и другоеpackage.json
? Нет .Вам нужен
package.json
?Да .Можете ли вы иметь проект только с
package-lock.json
? нет .Он
package.json
используется не только для зависимостей - например, для определения свойств проекта, описания, информации об авторе и лицензии, сценариях и т. Д. Онpackage-lock.json
используется исключительно для блокировки зависимостей для определенного номера версии.источник
package-lock.json
: записывает точную версию каждого установленного пакета, что позволяет переустановить их. Будущие установки смогут построить идентичное дерево зависимостей.package.json
: записывает минимальную версию, которая нужна вашему приложению. Если вы обновите версии определенного пакета, это изменение не будет отражено здесь.источник
package.json
записывает минимальную версию, необходимую для приложения, а package-lock.json записывает точную версию каждого установленного пакета, то у меня странная ситуация, когда модуль установлен в пакете версии 0.112.1 в пакете .json и 0.110.0 в package-lock.json ...Если ваш вопрос заключается в том, должен ли файл блокировки быть передан вашему контролю над исходным кодом - он должен это сделать. Это будет игнорироваться при определенных обстоятельствах.
Я обнаружил, что это раздутые запросы на выборку и история коммитов, поэтому, если вы видите, что это изменилось, сделайте отдельный коммит для него.
источник
package-lock.json
кажется более подробной версиейpackage.json
, поэтому безопасно или возможно использовать только файл блокировки.package-lock.json
под контроль версий.Более точное и подробное объяснение причины сохранения package-lock.json можно найти здесь
источник