Skip to content

Злоупотребление Barrel-файлами

ID: barrel_file | Степень критичности: Высокая (по умолчанию)

Barrel-файлы (например, файлы index.ts, которые только реэкспортируют другие файлы) могут стать проблемой, если они разрастаются или содержат слишком много несвязанных экспортов.

Почему это «запах»

  • Циклические зависимости: Большие barrel-файлы часто становятся причиной косвенных циклических зависимостей.
  • Ненужная связанность: Импорт одной сущности из большого barrel-файла может привести к тому, что сборщик подтянет множество несвязанных модулей.
  • Производительность: Может замедлить как разработку (индексация в IDE), так и продакшн (размер бандла и время загрузки).

Как исправить

  • Избегайте «всеобъемлющих» barrel-файлов в корне больших директорий.
  • Отдавайте предпочтение прямым импортам, если barrel-файл вызывает проблемы.
  • Группируйте экспорты в более мелкие и специализированные barrel-файлы.

Конфигурация

yaml
rules:
  barrel_file:
    severity: high
    max_reexports: 10

ESLint правило

Этот детектор доступен как правило ESLint для получения обратной связи в реальном времени.

javascript
// eslint.config.js
export default [
  {
    rules: {
      '@archlinter/no-barrel-abuse': 'warn',
    },
  },
];

Смотрите Интеграция с ESLint для инструкций по настройке.

Параметры по умолчанию

  • max_reexports: 10 - максимальное количество реэкспортов в barrel-файле

Released under the MIT License.