Выбор ответа Junior Пакеты и зависимости обновлено

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

Вопрос

Нужно ли коммитить package-lock.json в репозиторий приложения?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Да: он фиксирует версии всего дерева, включая транзитивные. Lock-файл единственный способ зафиксировать транзитивные зависимости.

Варианты ответа

  1. Нет, он генерируется автоматически и только засоряет историю
  2. Нет, достаточно указать точные версии в package.json
  3. Да: он фиксирует версии всего дерева, включая транзитивныеправильный ответ
  4. Только если в проекте нет devDependencies

Разбор

Lock-файл единственный способ зафиксировать транзитивные зависимости. Без него npm install через месяц может поставить другие версии, и баг воспроизведётся только у части команды.

  • То, что файл генерируется, не делает его лишним: важен именно зафиксированный результат.
  • Точные версии в package.json фиксируют только прямые зависимости.
  • devDependencies на это не влияют.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.