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:
      cyclomatic_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 cyclomatic_complexity, cognitive_complexity */
function legacyCode() {
  // Этот блок будет проигнорирован для обоих типов сложности
}
/* archlint-enable cyclomatic_complexity, cognitive_complexity */

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

Released under the MIT License.