@saabach/biome-config
v0.1.0
Published
Shared Biome lint and formatting configuration with official Tailwind class sorting.
Maintainers
Readme
Por que existe
Uma configuração compartilhada para escrever código com consistência: aspas simples, dois espaços, sem ponto e vírgula quando permitido e classes Tailwind organizadas automaticamente.
Regras nativas do Biome e oito plugins Grit verificam o código; o sorter oficial do Tailwind organiza as classes. O Prettier fornece os parsers usados pelo sorter, sem executar seu formatador completo.
Comece aqui
Requisitos: Node.js 20.19 ou superior.
Instale @saabach/biome-config como dependência de desenvolvimento:
pnpm add -D @saabach/biome-config
pnpm exec saabach-biome init
pnpm exec saabach-biome init --writeO primeiro init mostra um plano. O segundo aplica a configuração local,
adiciona os scripts e guarda backups dos arquivos existentes que alterar.
Arquivos de código permanecem intactos. Conflitos interrompem a adoção.
O mesmo fluxo com npm:
npm i -D @saabach/biome-config
npx saabach-biome init
npx saabach-biome init --writeO Biome e os componentes necessários ao sorter são dependências do pacote; não é necessário instalá-los um a um.
Usa Tailwind?
Informe o arquivo que contém seu tema. Isso permite ordenar também classes personalizadas, respeitando a configuração real do projeto.
# Tailwind v4
pnpm exec saabach-biome init --tailwind-stylesheet src/app/globals.css
pnpm exec saabach-biome init --write --tailwind-stylesheet src/app/globals.css
# Tailwind v3
pnpm exec saabach-biome init --tailwind-config tailwind.config.js
pnpm exec saabach-biome init --write --tailwind-config tailwind.config.jsPara funções e atributos adicionais, ajuste a .prettierrc.json gerada:
{
"tailwindFunctions": ["cn", "clsx", "cva", "twMerge"],
"tailwindAttributes": ["data-classes"]
}Esse trecho complementa as opções existentes; preserve as demais chaves. Uma configuração Prettier concorrente ou scripts incompatíveis exigem reconciliação explícita. O inicializador não executa desinstalações.
Um comando, o fluxo inteiro
pnpm run check:fix src/components/Button.tsx arquivos indicados
│
▼
Biome · correções seguras de lint
│
▼
Biome · formatação
│
▼
Tailwind · ordenação oficial das classes
│
▼
estabilidade + formatação + lint sem escritaO pipeline exige um resultado estável antes de escrever. Classes são encontradas por parsers e alteradas pelos seus intervalos na árvore sintática; não há um segundo formatador imprimindo o arquivo todo.
| Comando | O que faz |
| :---: | :---: |
| pnpm run format <arquivos> | Formata e ordena classes nos arquivos indicados |
| pnpm run format:check | Verifica a formatação sem escrever |
| pnpm run lint | Executa o lint do Biome e os plugins Grit |
| pnpm run check [arquivos] | Verifica formatação e lint sem escrever |
| pnpm run check:fix <arquivos> | Corrige com segurança, formata, ordena e verifica |
check:fix exige arquivos explícitos. Nenhum comando usa --unsafe.
Typecheck, testes e build da aplicação continuam nos scripts próprios do projeto
e devem compor sua CI; este pacote oferece a etapa de lint e estilo.
O estilo
| Convenção | Configuração |
| :---: | :---: |
| Indentação | 2 espaços |
| Largura preferida | 80 colunas |
| Aspas JS / TS | Simples |
| Aspas JSX | Duplas |
| Ponto e vírgula | Apenas quando necessário |
| Trailing commas | all |
| Parênteses em arrow functions | Sempre |
| Fim de linha | Preserva o primeiro EOL identificado no arquivo |
| Imports | Sem reordenação automática |
| Componentes vazios | Sem imposição de self-closing |
| Classes Tailwind | Sorter oficial, com o tema do projeto |
Compatibilidade
JavaScript, TypeScript, JSX, TSX, JSON, CSS e HTML. O suporte a HTML é experimental no Biome 2.5.15. A suíte cobre Tailwind v4; a integração também aceita configuração v3, mas essa versão exige validação no projeto consumidor.
Use saabach-biome init: o comando copia oito plugins para .engineering/.
Na versão atual do Biome, extends sozinho não instala esses arquivos.
Configurações concorrentes, scripts existentes e workspaces exigem revisão antes
da adoção. O inicializador apresenta os conflitos e preserva os arquivos.
O sorter reconhece class, className, atributos e funções configuráveis,
variantes, templates e temas personalizados. Não valida a existência das classes
nem combina fragmentos ligados a interpolações dinâmicas. @apply é suportado
pelo helper, mas não integra os 15 casos de regressão desta versão.
prettier-ignore controla apenas o sorter. Para a impressão do código, use as
supressões próprias do Biome. Editores configurados apenas com o formatter Biome
não executam a ordenação Tailwind; use o comando composto do pacote.
O pacote não reproduz todos os plugins ESLint nem garante impressão idêntica à do Prettier em todos os arquivos.
| Verificação | Limite |
| :---: | :---: |
| Referências triple-slash, espaços em comentários e linhas entre membros de classes | Sem equivalência completa |
| Validade de expressões regulares dinâmicas | Sem análise completa |
| Links para páginas Next.js | Sem resolução completa de rotas |
| Descrições em comentários de supressão TypeScript | Cobertura parcial |
| Variáveis não utilizadas com underscore | Convenções podem diferir |
| Preferência por const e condições constantes em loops | Opções e análise podem diferir |
Contribuição
A suíte verifica 15 casos de formatação, idempotência, lint e instalação de um pacote empacotado em um projeto isolado. Veja CONTRIBUTING.md para executar os testes e preparar uma publicação.
