Skip to content

Игнорирование файлов

archlint предоставляет несколько способов исключения файлов или директорий из анализа.

Глобальное игнорирование

Секция ignore в корне .archlint.yaml указывает файлы, которые должны быть полностью пропущены всеми детекторами.

yaml
ignore:
  - '**/node_modules/**'
  - '**/dist/**'
  - '**/coverage/**'
  - '**/tmp/**'
  - '**/*.d.ts'

Поддержка .gitignore

По умолчанию archlint автоматически учитывает ваш файл .gitignore. Вам не нужно дублировать эти паттерны в .archlint.yaml. Если вы хотите отключить это поведение, установите git: { enabled: false }.

Игнорирование для конкретного правила

Вы можете исключить файлы из проверки конкретным детектором, используя поле exclude внутри секции rules. Это полезно, если вы хотите, чтобы файл анализировался большинством детекторов, но пропускался одним конкретным.

yaml
rules:
  cycles:
    exclude:
      - '**/generated/**'
      - '**/*.entity.ts'

Переопределения для путей (Overrides)

Для более сложной логики (например, изменение настроек или отключение нескольких правил для конкретной директории) используйте секцию overrides:

yaml
overrides:
  - files: ['**/tests/**', '**/mocks/**']
    rules:
      complexity: off
      god_module: off
      large_file: medium

Инлайновое игнорирование

Вы можете игнорировать конкретные архитектурные проблемы непосредственно в коде, используя специальные комментарии. Это полезно для подавления предупреждений в исключительных случаях.

Способы игнорирования:

Для всех паттернов поддерживаются как однострочные (// archlint-...), так и многострочные (/* archlint-... */) комментарии.

  1. Весь файл: Добавьте // archlint-disable в начале файла.
  2. Конкретная строка: Добавьте // archlint-disable-line в конце строки или на строке выше.
  3. Следующая строка: Используйте // archlint-disable-next-line перед проблемной строкой.
  4. Блоки: Используйте // archlint-disable и // archlint-enable для выделения участка кода.

Примеры:

typescript
// 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 */

Вы можете указать несколько правил через запятую или использовать *, чтобы игнорировать все правила.

Released under the MIT License.