Skip to content
Latchkey

Knip vs depcheck: Encontre código e dependências não usados

depcheck encontra dependências npm não usadas e ausentes; Knip faz isso e mais, também reportando arquivos, exports e tipos não usados em um projeto ou monorepo.

Ambas as ferramentas ajudam a podar peso morto de projetos JavaScript/TypeScript. depcheck foca estritamente nas dependências do package.json; Knip é mais amplo, cobrindo arquivos, exports, membros de classe e dependências não usados. Aqui está a comparação honesta.

Knipdepcheck
EscopoArquivos, exports, tipos, deps não usadosDeps não usadas + ausentes
Foco de linguagemJS/TS (ciente de TypeScript)JS/TS
Suporte a monorepoDe primeira classe (workspaces)Limitado
Configknip.json / knip.ts, muitos pluginsConfig leve
Falsos positivosMenos com plugins, ajustávelMais em setups complexos
ManutençãoDesenvolvimento ativoEstável, atividade mais leve

Estreito vs amplo

depcheck responde bem a uma pergunta: quais dependências no package.json não são usadas e quais pacotes importados estão ausentes. Knip cobre isso mais arquivos e exports não usados, que é onde muito código morto de fato se esconde. Se você só se importa com a higiene de dependências, depcheck é mais simples; se quer uma varredura completa de código morto, Knip é mais completo.

Monorepos e precisão

Knip tem suporte de primeira classe a workspaces e um sistema de plugins que o ensina sobre frameworks e ferramentas (Vite, Jest, ESLint e mais), o que reduz falsos positivos. depcheck pode ter dificuldade com monorepos e imports dinâmicos. Ambos precisam de alguma configuração para não sinalizar entry points ou dependências apenas de config.

No CI

Rode qualquer um como um gate no estilo lint, para que dependências não usadas e arquivos mortos não se acumulem. Comece em um modo não bloqueante para triar o backlog inicial e, depois, aplique a regra quando a baseline estiver limpa.

O veredito

Escolha depcheck para uma verificação leve, apenas de dependências; escolha Knip para uma auditoria mais ampla de código morto com forte suporte a monorepo. Muitas equipes começam com depcheck e migram para o Knip conforme o projeto cresce.

Guias relacionados