ESLint: introduz linting multithread e melhora a velocidade em até 3x em projetos de grande porte
(eslint.org)Resumo principal
- O ESLint v9.34.0 adiciona linting multithread, permitindo processar vários arquivos ao mesmo tempo.
- O objetivo é reduzir de forma significativa o tempo de linting em codebases grandes.
- Recurso oficialmente adotado após mais de 10 anos de preparação.
O que melhorou
- Faz melhor uso dos núcleos de CPU para reduzir o tempo total de linting com processamento paralelo.
- Especialmente eficaz em monorepos e repositórios grandes com muitos arquivos.
Como usar
- A CLI oferece uma opção para controlar a concorrência (número de threads), por exemplo, configurações relacionadas a
concurrency. - É possível ajustar o valor de concorrência conforme o projeto ou ambiente de CI para encontrar o ponto ideal.
Limitações e cuidados
- Há relatos de casos em que, ao executar por alguns wrappers externos ou ferramentas de integração, o desempenho não atinge o esperado (varia conforme a combinação de ambiente e ferramentas).
- Como é um recurso novo, ao adotá-lo no fluxo de linting, recomenda-se validar desempenho e estabilidade tanto no CI quanto no ambiente local.
Dicas de adoção
- Em vez de aplicar de uma vez em todo o repositório, faça uma adoção gradual por diretórios até encontrar o valor adequado de concorrência.
- No CI, ajuste em conjunto o cache e a estratégia de paralelismo, e verifique primeiro regras e plugins com maiores gargalos (I/O de arquivos, tempo de execução das regras).
Em uma frase
- “O aguardado linting paralelo chegou; é hora de buscar uma melhora perceptível no tempo de linting em projetos grandes.”
Ainda não há comentários.