Игнорирование файлов
archlint предоставляет несколько способов исключения файлов или директорий из анализа.
Глобальное игнорирование
Секция ignore в корне .archlint.yaml указывает файлы, которые должны быть полностью пропущены всеми детекторами.
ignore:
- '**/node_modules/**'
- '**/dist/**'
- '**/coverage/**'
- '**/tmp/**'
- '**/*.d.ts'Поддержка .gitignore
По умолчанию archlint автоматически учитывает ваш файл .gitignore. Вам не нужно дублировать эти паттерны в .archlint.yaml. Если вы хотите отключить это поведение, установите git: { enabled: false }.
Игнорирование для конкретного правила
Вы можете исключить файлы из проверки конкретным детектором, используя поле exclude внутри секции rules. Это полезно, если вы хотите, чтобы файл анализировался большинством детекторов, но пропускался одним конкретным.
rules:
cycles:
exclude:
- '**/generated/**'
- '**/*.entity.ts'Переопределения для путей (Overrides)
Для более сложной логики (например, изменение настроек или отключение нескольких правил для конкретной директории) используйте секцию overrides:
overrides:
- files: ['**/tests/**', '**/mocks/**']
rules:
complexity: off
god_module: off
large_file: mediumИнлайновое игнорирование
Вы можете игнорировать конкретные архитектурные проблемы непосредственно в коде, используя специальные комментарии. Это полезно для подавления предупреждений в исключительных случаях.
Способы игнорирования:
Для всех паттернов поддерживаются как однострочные (// archlint-...), так и многострочные (/* archlint-... */) комментарии.
- Весь файл: Добавьте
// archlint-disableв начале файла. - Конкретная строка: Добавьте
// archlint-disable-lineв конце строки или на строке выше. - Следующая строка: Используйте
// archlint-disable-next-lineперед проблемной строкой. - Блоки: Используйте
// archlint-disableи// archlint-enableдля выделения участка кода.
Примеры:
// archlint-disable * - Весь файл использует устаревшие паттерны
// Игнорировать все правила для всего файла
// prettier-ignore
// archlint-disable-next-line long-params - Эта легаси функция требует много параметров
function processTransaction(id: string, amount: number, currency: string, date: Date, recipient: string, note: string) {
// Детектор длинных параметров будет проигнорирован только для строки объявления функции
}
import { internal } from './private'; // archlint-disable-line layer_violation - Временное исключение для миграции
/* archlint-disable complexity */
function legacyCode() {
// Этот блок будет проигнорирован
}
/* archlint-enable complexity */Вы можете указать несколько правил через запятую или использовать *, чтобы игнорировать все правила.