Злоупотребление Barrel-файлами
ID: barrel_file | Степень критичности: Высокая (по умолчанию)
Barrel-файлы (например, файлы index.ts, которые только реэкспортируют другие файлы) могут стать проблемой, если они разрастаются или содержат слишком много несвязанных экспортов.
Почему это «запах»
- Циклические зависимости: Большие barrel-файлы часто становятся причиной косвенных циклических зависимостей.
- Ненужная связанность: Импорт одной сущности из большого barrel-файла может привести к тому, что сборщик подтянет множество несвязанных модулей.
- Производительность: Может замедлить как разработку (индексация в IDE), так и продакшн (размер бандла и время загрузки).
Как исправить
- Избегайте «всеобъемлющих» barrel-файлов в корне больших директорий.
- Отдавайте предпочтение прямым импортам, если barrel-файл вызывает проблемы.
- Группируйте экспорты в более мелкие и специализированные barrel-файлы.
Конфигурация
yaml
rules:
barrel_file:
severity: high
max_reexports: 10ESLint правило
Этот детектор доступен как правило ESLint для получения обратной связи в реальном времени.
javascript
// eslint.config.js
export default [
{
rules: {
'@archlinter/no-barrel-abuse': 'warn',
},
},
];Смотрите Интеграция с ESLint для инструкций по настройке.
Параметры по умолчанию
max_reexports:10- максимальное количество реэкспортов в barrel-файле