Package-lock.json — какие бывают соглашения на проектах, best practice?
Помогите разобраться с порядком работы с этим файлом.
например клоню проект и устанавливаю зависимости - почти всегда package-lock в чем-то да обновится. Естественно коммитать свой фикс или FR вместе с обновленным файлом не стоит и он остается модифицированным только в локальном проекте. Вроде решено - но по факту получается что разработка велась на одном lock файле а в актуальном мастере другой?
Как вообще построена работа с этим на файлом и комитами его обновлений на разных проектах? какие best practice стоило бы соблюдать?
Заранее благодарю за помощь
Устанавливать зависимости нужно командой npm ci, тогда package-lock не будет меняться. А если npm ci выдаёт ошибку значит кто-то закоммитил несовместимые package и package-lock и это стоит поправить отдельным коммитом.
В нормальной работе package-lock меняется только при изменениях в зависимостях
Спасибо!
Еще уточнение для ситуаций когда package.json Допускает установку пакетов более поздних версий:
таким образом установка через npm i это уже изначально ошибка ?- стоит указывать в том же readme.md npm ci вместо npm i ?
ну и можно ли сказать что не совсем правильно когда на проектах нет package-lock в репозитории и у каждого разработчика по итогу может быть свой lock-файл после npm i ?