Declare seus projetos JavaScript e TypeScript.
Este artigo foi publicado originalmente no meu blog pessoal em 2025/08/13 Hiee! Bem -vindo a outro post, onde eu vou mostrar como podemos usar o KNIP para organizar nossos projetos TypeScript e JavaScript. O que é um golpe? O KNIP é uma ferramenta incrível que visa organizar seus projetos JavaScript e TypeScript. Mas o que significa organizar? Se você já trabalhou em um projeto por um tempo que envolve um monte de pessoas ou mesmo apenas você mesmo, notará que o código e as dependências não utilizados tendem a se acumular na base de código ao longo do tempo. Isso também é conhecido como dívida técnica. O que é dívida técnica? Dívida técnica é a bagunça que ninguém em sua equipe quer tocar. Oh, espere, isso parece um pouco vago demais. Aqui está uma melhor: a dívida técnica pode ser qualquer coisa, desde o código legado que pode estar pendurado por um thread ou pode estar desejando um refattor, ou pode ser código não utilizado, dependências, arquivos de configuração e muito mais. Um exemplo muito prático de como essa dívida técnica se acumula: geralmente removemos os recursos de nossos projetos devido a baixa tração, mas esquecemos de limpar todo o código relacionado. Ou soluções excessivas de engenheiros com muita frequência, o que deixa para trás abstrações não utilizadas e funções auxiliares. Isso é ainda mais relevante hoje, porque aceitamos cegamente as mudanças que um LLM faz na nossa base de código hoje em dia. Como a maioria dos LLMs é treinada no código de merda, você sempre deve esperar que eles façam o mínimo e não o contrário. O que significa que o código ainda mais utilizado e irrelevante é deixado para trás. Correndo bem, o suficiente do que é o quê, e vamos ver como podemos realmente limpar essa bagunça. É aqui que o knip entra em jogo. Quando você executa o knip na sua base de código, ele oferece um bom resumo de quais arquivos, componentes, funções exportadas, constantes etc. atualmente não são utilizadas na sua base de código. Este é o momento em que você perceberá quanto da bagunça se acumulou com o tempo que passou despercebido. A menos que você se atenha a padrões e críticas de código extremamente rigorosos, impedir que isso seja quase impossível, porque o cérebro humano só pode acompanhar tanto. Aqui está um exemplo de resumo de um dos projetos em que eu executei: $ PNPX FNIP FILOS UNUSTUNDOS (5) APP/COMPONENTS/CART.TSX App/components/emoji-picker.tsx App/components/Media-DropZone.tsx AppOnents/Filidsx App/Components/Selectzo-modal.TSX AppOnnts/FilfilEssx (componentes)/sexmodal.tsx.TSX AppOnnts/filerq (componentes)/components/select-dropzone.tsx AppOnents/perfilsx package.json: 32: 6 @HONO/ZOD-VALIDATOR PACOTE.JSON: 36: 6 @Opentelemetry/Auto-Instrumentations-node Package.JSON: 41: 6 @Tailwindcss/Typeography Package.json: 63: 6 Exportações não usadas (4) Função CreatePost App/Components/Create-Post.TSX. App/componentes/acontecendo-now.tsx: 755: 17 ShareButton Função App/Components/Post.TSX: 141: 17 StickerPopover Função App/componentes/post.TSX: 193: 17 TippTpoPoPoverItem App/Components/Post.TSX: 549: 17 INSPORTENSTED MEMBRANOS (5) SanitySearchKeys App/enums.ts: 67: 3 SLUG SanitySearchKeys App/enums.ts: 68: 3 Título SanitySearchKeys App/enums.ts: 69: 3 adesivos FocusCarouseLResourceType App/Types.TS: 526: 3 Digite o modo de verde de tela completa FullScretScreen Mode! Tudo o que fizemos foi executar um único comando e agora podemos ver tudo o que não está sendo usado em nossa base de código. Quão grande é isso? Honestamente, esta é uma das melhores partes do golpe. Está quase sem configuração. Aqui está uma citação de seus documentos: o knip tem bons padrões e visa a “Zero Config”. Isso pode ser difícil de acreditar, mas consegui excluir linhas de código de 12k+ em mais de 100 arquivos usando o knip – o que eu não seria capaz de fazer o contrário. Usando um arquivo de configuração, mas como todo projeto é diferente, onde você pode querer executar o knip também pode mudar. Você pode executá -lo em uma fração de uma base de código – é aqui que o arquivo de configuração entra.here é um exemplo de arquivo de configuração dos documentos: knip.json {“$ esquema”: “entrada”: [“src/index.ts”, “scripts/{build,create}.js”]”projeto”: [“src/**/*.ts”, “scripts/**/*.js”]
} Digite o modo de saída do modo de tela cheia, como você pode ver, você pode personalizar onde o macote é executado, o que ele fia, etc. Ele também tem muitas outras opções de configuração e, honestamente, não vou cobrir todos eles. Seria demais. Mas estes são o mínimo e provavelmente adequados para a grande maioria dos projetos. De qualquer forma, voltando ao resumo que o knip nos deu, o que podemos fazer aqui? Para iniciantes, você pode simplesmente ir para esses arquivos e remover todas as coisas sugeridas não utilizadas manualmente. Mas espere, isso não parece uma tarefa muito fácil, certo? Sim, porque não é. É muito difícil ir a cada arquivo e excluir coisas. Mas não se preocupe, o knip nos cobriu lá também. O KNIP nos fornece uma bandeira de fixer automaticamente-Fix-Alow-Remove-Files que segue em frente e remove as deleções sugeridas para você. Você pode acreditar que esta ferramenta é gratuita? Eu não posso, mas aqui estamos nós. Tudo bem, isso parece um pouco perigoso, certo? Deixar uma ferramenta executar operações de arquivo em nossa base de código? E sim, deve parecer perigoso, porque é, mas para que há para lá? Contanto que você consulte uma nova filial, você pode fazer o que quiser com a cópia da sua base de código. Você só precisará se preocupar se não estiver usando o Git, o que eu acho que é possível em 2025. Os próximos passos são ótimos! Fizemos tudo o que deveríamos fazer. Agora, tudo o que precisamos fazer é revisar as alterações que o knip fez. Mas por que precisamos revisar? Bem, é para garantir que não removemos acidentalmente nada que estava sendo usado. É sempre bom verificar duas vezes para não acabarmos quebrando o Prod em uma noite de sexta -feira. Uma das minhas coisas favoritas sobre tudo isso é que, se você estiver usando o TypeScript, basta executar o TypeScript TypeChecker TSC -NOMIT, que dirá se você removeu acidentalmente qualquer coisa que estava sendo usada em algum lugar. Mas se não reclamar, você não tem nada com que se preocupar. Vá em frente e mescla esse pr. Mas se você estiver usando o JavaScript, antes de tudo, lamento que você tivesse que manter uma base de código JS; Em segundo lugar, você provavelmente ainda pode se safar usando um linhador, por isso deve ficar bem. Tudo bem, é isso para este post. Espero que você tenha aprendido algo. Execute o golpe na sua base de código hoje e você se agradecerá mais tarde. Feliz código de exclusão. Enquanto isso pode parecer tão simples quanto executar um único comando, não é um tipo de coisa e esqueça. Você provavelmente deve adicionar isso aos seus scripts de desenvolvimento ou CI e garantir que isso funcione com frequência para que você possa continuar limpando as coisas à medida que ele vem. Não aceite cegamente as alterações do LLMS. Eles geralmente superam e adicionam coisas desnecessárias que nem são relevantes para essa tarefa em particular. Muitos desenvolvedores não se importam com dívidas tecnológicas, mas tentam ser aquela pessoa que se importa – você se agradecerá mais tarde por assumir essa responsabilidade.
Fonte
Publicar comentário