@kirill-93

Нужно ли добавлять в .gitignore package-lock.json?

Подскажите, нужно ли добавлять в .gitignore файл package-lock.json?
Вроде бы не нужно. Об этом много где написано, по умолчанию его нет в .gitignore, но когда я запускаю npm install на сервере, при следующем коммите вылазит ошибка "Your local changes to the following files would be overwritten by merge: package-lock.json"
  • Вопрос задан
  • 24921 просмотр
Решения вопроса 2
Согласно официальной документации package-lock.json предназначен быть в репозитории, чтобы все разработчики проекта работали с одним и тем же набором зависимостей.

Относительно того, что его не нужно включать в код библиотек - неправда:
  • Во-первых, когда выполняется npm publish, package-lock.json автоматически исключается из опубликованного пакета (проверьте командой npm archive, например)
  • А во-вторых, package-lock.json используется только в корне проекта. В зависимостях он игнорируется. То есть в директории node_modules/your-dependency он может присутствовать невозбранно.


Ответ на ваш вопрос: никогда не добавляйте package-lock.json в .gitignore
Ответ написан
Lynn
@Lynn
nginx, js, css
На сервере надо запускать npm ci

Если он чего-то не смог поставить, значит у вас неактуальный package-lock.json и нужно это исправлять.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mad_maximus
@mad_maximus
Если библиотека, то нужно, чтобы пользователи вашей библиотеки всегда скачивали актуальные зависимости из package.json. Если проект, то не нужно, тогда те, кто пишут проект вместе с вами, будут использовать библиотеки, версии которых указаны в package-lock.json. Следственно, у них не будет конфликтов.
Ответ написан
Barh33
@Barh33
Fullstack (php, js и др.)
Советуют использовать lock файл для приложений, но не для библиотек, потому что для пользователей библиотек файл lock игнорируется. И чтобы быть более приближённым к пользовательским окружениям этот файл не используется в репозиториях библиотек.

Более подробно:
https://github.com/sindresorhus/ama/issues/479#iss...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы