pnpm-lock.yaml. Pacotes npm
publicados do OpenClaw usam npm-shrinkwrap.json, o lockfile de dependências
publicável do npm, para que as instalações de pacotes usem o grafo de
dependências revisado durante o lançamento.
A versão simples
Shrinkwrap é um recibo da árvore de dependências que acompanha um pacote npm. Ele informa ao npm quais versões exatas de pacotes transitivos instalar. Para lançamentos do OpenClaw, isso significa:- o pacote publicado não pede ao npm para inventar um grafo de dependências novo no momento da instalação;
- mudanças de dependências ficam mais fáceis de revisar porque aparecem em um lockfile;
- a validação de lançamento pode testar o mesmo grafo que os usuários instalarão;
- surpresas de tamanho de pacote ou dependências nativas ficam mais fáceis de identificar antes da publicação.
openclaw security audit, proveniência de
pacotes ou testes básicos de instalação.
O modelo mental curto:
| Arquivo | Onde importa | O que significa |
|---|---|---|
pnpm-lock.yaml | Checkout de código-fonte do OpenClaw | Grafo de dependências do mantenedor |
npm-shrinkwrap.json | Pacote npm publicado | Grafo de instalação npm para usuários |
package-lock.json | Apps npm locais | Não é o contrato de publicação do OpenClaw |
Por que o OpenClaw o usa
OpenClaw é um Gateway, host de Plugin, roteador de modelos e runtime de agentes. Uma instalação padrão pode afetar tempo de inicialização, uso de disco, downloads de pacotes nativos e exposição à cadeia de suprimentos. Shrinkwrap dá à revisão de lançamento um limite estável:- revisores conseguem ver movimentação de dependências transitivas;
- validadores de pacote conseguem rejeitar desvios inesperados de lockfile;
- a aceitação de pacote pode testar instalações com o grafo que será enviado;
- pacotes de Plugin podem carregar seu próprio grafo de dependências bloqueado em vez de depender do pacote raiz para possuir dependências usadas apenas pelo Plugin.
Detalhes técnicos
O pacote npm raizopenclaw e pacotes npm de Plugin pertencentes ao OpenClaw incluem
npm-shrinkwrap.json quando são publicados. Pacotes de Plugin adequados
pertencentes ao OpenClaw também podem ser publicados com bundledDependencies
explícitas, para que seus arquivos de dependências de runtime sejam carregados
no tarball do Plugin em vez de depender apenas da resolução no momento da instalação.
Mantenha o limite assim:
pnpm-lock.yaml. Isso mantém
intacto o limite de idade de dependências, overrides e revisão de patches do pnpm.
Use comandos apenas da raiz somente quando estiver atualizando intencionalmente
o pacote raiz sem tocar em pacotes de Plugin:
pnpm-lock.yamlnpm-shrinkwrap.json- payloads de dependências de Plugin empacotadas
- qualquer diff de
package-lock.json
package-lock.json para pacotes
publicados do OpenClaw.
Para inspecionar um pacote raiz publicado: