Ignorando Arquivos
O archlint fornece várias maneiras de excluir arquivos ou diretórios da análise.
Ignorar Global
A seção ignore na raiz do .archlint.yaml especifica arquivos que devem ser completamente ignorados por todos os detectores.
ignore:
- '**/node_modules/**'
- '**/dist/**'
- '**/coverage/**'
- '**/tmp/**'
- '**/*.d.ts'Suporte ao .gitignore
Por padrão, o archlint respeita automaticamente seu arquivo .gitignore. Você não precisa duplicar esses padrões no .archlint.yaml. Se desejar desativar esse comportamento, defina git: { enabled: false }.
Ignorar por Regra
Você pode excluir arquivos de um detector específico usando o campo exclude dentro da seção rules. Isso é útil se você deseja que um arquivo seja analisado pela maioria dos detectores, mas ignorado por um detector específico.
rules:
cycles:
exclude:
- '**/generated/**'
- '**/*.entity.ts'Substituições de Caminho (Overrides)
Para lógica mais complexa (por exemplo, alterar configurações ou desativar várias regras para um diretório específico), use a seção overrides:
overrides:
- files: ['**/tests/**', '**/mocks/**']
rules:
complexity: off
god_module: off
large_file: mediumIgnorar Inline
Você pode ignorar problemas arquiteturais específicos diretamente no seu código-fonte usando comentários especiais. Isso é útil para suprimir avisos em casos excepcionais.
Uso:
Tanto a sintaxe de comentário de linha única (// archlint-...) quanto a de comentário de bloco (/* archlint-... */) são suportadas para todos os padrões.
- Todo o arquivo: Adicione
// archlint-disableno início do arquivo. - Linha atual: Adicione
// archlint-disable-lineno final da linha ou na linha acima. - Próxima linha: Use
// archlint-disable-next-lineantes da linha problemática. - Blocos: Use
// archlint-disablee// archlint-enablepara envolver uma seção de código.
Exemplos:
// archlint-disable * - Todo o arquivo usa padrões legados
// Ignorar todas as regras para todo o arquivo
// prettier-ignore
// archlint-disable-next-line long-params - Esta função legada requer muitos parâmetros
function processTransaction(id: string, amount: number, currency: string, date: Date, recipient: string, note: string) {
// O detector de parâmetros longos será ignorado apenas para esta linha
}
import { internal } from './private'; // archlint-disable-line layer_violation - Exclusão temporária para migração
/* archlint-disable complexity */
function legacyCode() {
// Este bloco será ignorado
}
/* archlint-enable complexity */Você pode especificar várias regras separadas por vírgulas ou usar * para ignorar todas as regras.