Некоторое время я использовал функцию блокировки пакетов npm 5. Но он не делает того, что должен делать, как следует из названия package-LOCK.json. Я сразу перешла на пряжу, так как использую ее очень давно.

Чтобы понять, как работает функция блокировки npm (они говорят, что это предполагаемая функция), настройте проект с некоторыми зависимостями и зафиксируйте файл блокировки. Подождите неделю или две (для выпусков новых версий) и удалите папку node_modules/. Если вы сделаете npm install, вы увидите, что package-lock.json изменен в соответствии с git status.

См. соответствующие сообщение о stackoverflow и проблема с github.

Я настоятельно рекомендую всем пройти по двум указанным выше ссылкам, прежде чем выбирать функцию блокировки npm 5 для блокировки версий зависимостей.