Skip to content
Latchkey

O Que É um Lockfile?

Um lockfile registra a versão exata de cada dependência - direta e transitiva - para que o mesmo install produza a mesma árvore toda vez.

Um manifest como o package.json diz "react ^18". Esse intervalo pode resolver para versões diferentes em dias diferentes. Um lockfile (package-lock.json, yarn.lock, poetry.lock, Cargo.lock) congela a resolução para que os installs sejam determinísticos.

Manifest vs lockfile

O manifest declara o que você quer, frequentemente como intervalos de versão. O lockfile registra o que você realmente obteve, até as versões e checksums exatos. O lockfile é o que faz "buildou ontem" buildar de forma confiável hoje.

Por que o CI deve usá-lo

No CI, instale a partir do lockfile em modo frozen - npm ci, yarn install --frozen-lockfile, poetry install. Isso se recusa a atualizar qualquer coisa silenciosamente e falha de forma barulhenta se o lockfile e o manifest discordarem, pegando o drift em vez de escondê-lo.

Um pequeno exemplo

Rodar npm install no CI pode resolver silenciosamente um novo patch release e mutar o lockfile, então duas execuções diferem. Rodar npm ci em vez disso apaga o node_modules e instala estritamente a partir do package-lock.json, falhando se o lockfile estiver fora de sincronia.

Lockfiles alimentam cache keys

Como o lockfile muda exatamente quando as dependências mudam, o seu hash é a cache key ideal. Fazer o hash do manifest em vez disso perderia atualizações transitivas e serviria um cache obsoleto.

Faça commit e revise-o

Lockfiles pertencem ao controle de versão. Revisar os diffs de lockfile em pull requests revela mudanças inesperadas de dependências - um sinal chave na defesa de supply-chain, já que um bump transitivo malicioso aparece como uma mudança no lockfile.

Principais conclusões

  • Um lockfile fixa versões exatas de todas as dependências para installs reproduzíveis.
  • O CI deve instalar a partir do lockfile em modo frozen, nunca atualizá-lo.
  • O hash do lockfile é a cache key natural para dependências.

Guias relacionados