Павел Бобров
Не могу до конца понять. Он же вроде генерится. То есть если в проекте раньше не было lock, то в любом случае на выходе сгенерится рабочее дерево зависимостей
Когда ты в package.json пишешь jQuery: "1.3.*" он за место звездочки подставляет самую большую цифру на данный момент, например 1.3.7, ты выгрузил проджект на гитхаб, какой то чел его через год скачал к себе на комп, нажал npm i а у него с интернета выкачалась 1.3.9 потому что разработчтки уже новую версию запилили, и у вас разные версии. вроде свиду одинаковые, но у друга баг есть, а у тебя бага нет. И решением служит добавление node_modules в гит, что крайне дикое решение. по этому, упрощенный слепок папки node_modules со всеми КОНКРЕТНЫМИ установленными там версиями, это и есть файлик package-lock.
Ты просто не node_modules в гит пихаешь а один этот файлик, и когда петя будет писать npm i у него точно такие же версии как и у тебя выкачаются из интернета.