Lock-файл: воспроизводимое дерево зависимостей
Lock-файл фиксирует разрешённое дерево зависимостей проекта, чтобы повторная установка меньше зависела от новых версий пакетов.
Назначение
Lock-файл фиксирует разрешённое дерево зависимостей проекта, чтобы повторная установка меньше зависела от новых версий пакетов.
Как это работает
В npm package.json описывает требования, а package-lock.json сохраняет конкретное разрешение. npm ci ожидает согласованные файлы и предназначен для чистой воспроизводимой установки по зафиксированному состоянию.
Пример
package.json
package-lock.json
# Команда только для подготовленного учебного окружения:
npm ci
Что должно получиться
Файлы описывают требования и конкретное дерево. Команда приведена как предмет изучения, а не выполняется на сервере сайта; воспроизводимость не означает отсутствие уязвимостей.
Граница применения и частая ошибка
Не запускайте npm ci в рабочем проекте без понимания последствий: команда может удалить существующий node_modules и выполнить установочные скрипты. Проверяйте доверие к зависимостям и выбирайте отдельное окружение.
Самостоятельная проверка
В копии учебного проекта сравните package.json и lock-файл, не обновляя версии. Определите, какие файлы нужно сохранить в Git для повторяемой установки другой машиной.