[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-lockfile::ru":3,"gloss-cluster-lockfile::ru":26,"gloss-next-lockfile::ru":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"lockfile","dev-tools","Lock-файл","Lock-файл фиксирует точную версию каждой зависимости — прямой и транзитивной, — которую менеджер пакетов разрешил для проекта, обычно с хешем содержимого для каждой. Манифест говорит, что вы хотите («какой-нибудь релиз 4.x этой библиотеки»); lock-файл говорит, что вы получили, вплоть до транзитивной зависимости на шестом уровне, которую никто не выбирал осознанно. Его коммит в репозиторий и делает установку воспроизводимой: один и тот же коммит даёт одно и то же дерево зависимостей на ноутбуке, в CI и в продакшен-образе, вместо того чтобы каждый раз разрешаться заново и подхватывать всё, что успели опубликовать. У этой воспроизводимости три следствия, которые стоит назвать. Становится возможной отладка: «локально работает, в CI падает» перестаёт быть загадкой, когда доказуемо исполняется один и тот же код. Становится возможной проверка цепочки поставок: lock-файл — авторитетный список, который сканер сопоставляет с опубликованными уязвимостями, а записанные хеши обнаруживают пакет, чьё содержимое изменилось без смены версии. И обновления становятся осознанными: зависимости двигаются, когда кто-то запустил обновление и просмотрел диф, а не тихо при следующей сборке. К этому прилагаются две привычки. Используйте команду установки, которая строго следует lock-файлу и падает при расхождении, а не ту, что разрешает заново и переписывает: гарантию в CI даёт только строгая форма. И не давайте ему дрейфовать месяцами — необновляемый lock-файл копит известные уязвимости и однажды превращает рутинное обновление в крупное и рискованное.","Lock-файл фиксирует разрешённые версии и хеши всех зависимостей: что он делает воспроизводимым и зачем нужны строгая установка и регулярные обновления.",null,[11,14,17,20,23],{"slug":12,"name":13},"cve","CVE (идентификатор уязвимости)",{"slug":15,"name":16},"package-manager","Менеджер пакетов (Package Manager)",{"slug":18,"name":19},"semantic-versioning","Семантическое версионирование (SemVer)",{"slug":21,"name":22},"software-bill-of-materials","Software Bill of Materials (SBOM)",{"slug":24,"name":25},"supply-chain-security","Supply-Chain Security (безопасность цепочки поставок)",[27,31,34,38,41,44,47,50,53,56,59,62],{"slug":28,"category":5,"name":29,"updated_at":30},"agent","Агент (Agent)","2026-08-24T02:46:36+00:00",{"slug":32,"category":5,"name":33,"updated_at":30},"ai-code-assistant","AI-помощник по написанию кода",{"slug":35,"category":5,"name":36,"updated_at":37},"api-gateway","API-шлюз (API Gateway)","2026-08-24T02:46:37+00:00",{"slug":39,"category":5,"name":40,"updated_at":37},"api-versioning","API Versioning (версионирование API)",{"slug":42,"category":5,"name":43,"updated_at":30},"autonomous-agent","Автономный агент (Autonomous Agent)",{"slug":45,"category":5,"name":46,"updated_at":37},"blue-green-deployment","Blue-Green Deployment (сине-зелёное развёртывание)",{"slug":48,"category":5,"name":49,"updated_at":37},"canary-deployment","Canary Deployment (канареечное развёртывание)",{"slug":51,"category":5,"name":52,"updated_at":37},"chaos-engineering","Chaos Engineering (хаос-инжиниринг)",{"slug":54,"category":5,"name":55,"updated_at":30},"ci-cd","Непрерывная интеграция \u002F непрерывное развёртывание (CI\u002FCD)",{"slug":57,"category":5,"name":58,"updated_at":37},"circuit-breaker","Предохранитель (Circuit Breaker)",{"slug":60,"category":5,"name":61,"updated_at":37},"cli","Интерфейс командной строки (CLI)",{"slug":63,"category":5,"name":64,"updated_at":37},"cloud-development-environment","Облачная среда разработки (CDE)"]