Вебсправочник
Основы веб-разработки

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 для повторяемой установки другой машиной.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.