Коммитишь ли package-lock.json

«Коммитишь ли package-lock.json» — вопрос из категории Git, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, package-lock.json нужно коммитить в репозиторий. Он фиксирует точные версии всех зависимостей и их подзависимостей, что гарантирует одинаковые установки пакетов у всех разработчиков и на CI/CD. Без него могут возникнуть проблемы из-за различий в версиях, даже если package.json одинаковый.

Пример:

// package-lock.json
{
  "name": "project",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "dependencies": {
        "react": "18.2.0" // точная версия
      }
    }
  }
}

Исключение — если ты работаешь над библиотекой, тогда лучше использовать npm-shrinkwrap.json.