C
|Caroline Oliveira
Tutoriais

Biomejs: Um único arquivo para formatar, lintar e organizar o código

Autor

Caroline Oliveira

Data de publicação

Ilustração estilizada e minimalista em tons de verde menta e cinza, mostrando mãos robóticas brancas digitando em um teclado.

Visão geral

O Biome é um linter e formatter escrito em Rust, pensado para substituir ESLint e Prettier com uma única ferramenta. Oferece:

  • Um único arquivo de config (biome.json)
  • Performance: execução bem mais rápida em projetos grandes
  • Batteries included: formatação, lint (com regras recomendadas) e organização de imports sem plugins extras para o caso de uso básico

Setup

Para instalar e inicializar o Biome, com apenas dois comandos ele já é instalado e está pronto para uso no projeto:

Typescript
pnpm add -D @biomejs/biome
npx @biomejs/biome init

O init cria o biome.json na raiz do projeto. A partir daí toda a configuração fica nesse arquivo.


Anatomia do biome.json

Uma configuração básica para um projeto Vite + React + Tailwindcss:

Javascript
{
"$schema": "https://biomejs.dev/schemas/2.4.4/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"includes": [
"**",
"!!**/dist"
]
},
"formatter": {
"enabled": true,
"indentStyle": "tab"
},
"linter": {
"enabled": true,
"domains": {
"react": "recommended"
},
"rules": {
"recommended": true
}
},
"javascript": {
"formatter": {
"quoteStyle": "double"
}
},
"assist": {
"enabled": true,
"actions": {
"source": {
"organizeImports": "on"
}
}
},
"css": {
"parser": {
"tailwindDirectives": true
}
}
}

Essa configuração traz os as principais regras:

  • useIgnoreFile: true — respeita `.gitignore`; arquivos ignorados pelo Git não são formatados/lintados (ex.: `node_modules`, `dist`
  • indentStyle: "tab" — padroniza a indentação com tab.
  • domains.react: "recommendedativa o conjunto de regras recomendadas para React.
  • organizeImports: "on" — ordena e remove imports não usados ao salvar/rodar o Biome.

Scripts para o package.json

Javascript
{
"scripts": {
"format": "pnpx @biomejs/biome format --write ./src",
"lint": "pnpx @biomejs/biome lint ./src",
"check": "pnpx @biomejs/biome check --write ./src"
}
}
  • format: formata apenas `./src`
  • lint: só executa o linter (sem escrever).
  • check: formata + lint e aplica correções automáticas onde possível (`--write`). O check é o comando que costuma rodar em CI e no pre-commit.

Conclusão

O Biome entrega lint + formatação + organize imports em uma ferramenta só, com um único `biome.json` e boa performance. Para times que buscam algo mais prático que manter ESLint e Prettier em paralelo, vale testar em um projeto piloto ou em um módulo novo.

Atenção: o ecossistema de plugins do ESLint é maior; se você depende de regras ou plugins muito específicos, vale checar se o Biome já cobre ou se há equivalentes antes de migrar.

Estou usando em um projeto pessoal e o resultado está sendo bem satisfatório. Até agora não tive problemas críticos ou que não fosse simples e rápido de corrigir.