O Que É um Lockfile?
Um lockfile é um arquivo gerado que fixa as versões exatas, e muitas vezes os hashes criptográficos, de cada dependência direta e transitiva que um projeto resolveu. Arquivos como package-lock.json, yarn.lock e Cargo.lock permitem que qualquer máquina reinstale a árvore de dependências idêntica. Eles tornam os builds determinísticos e protegem contra mudanças inesperadas do upstream.
Por que isso importa
Faixas de versão em um manifest podem ser resolvidas de forma diferente a cada instalação, causando bugs do tipo "funciona na minha máquina" e risco de supply chain. Um lockfile commitado congela a resolução para que o CI instale exatamente o que os desenvolvedores testaram, e os hashes registrados detectam adulterações.
Conceitos relacionados
- Captura dependências transitivas, não apenas as diretas
- Hashes fornecem verificação de integridade
- Use um modo de instalação congelada no CI para impor isso
Guias relacionados
What Is Dependency Pinning?Dependency pinning fixes dependencies to exact versions (or hashes) instead of ranges, so builds are predicta…
What Is a Transitive Dependency?A transitive dependency is one you do not require directly but pull in indirectly because a dependency of you…
What Is a Reproducible Build?A reproducible build produces bit-for-bit identical output every time from the same source, letting anyone in…