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

Более подробно:
https://github.com/sindresorhus/ama/issues/479#iss...