BetaДокументация для beta‑теста, возможны ошибки и неточности.
Перейти к содержимому

feod-structure/no-common-index ​

Запрет index-файлов и их импорта в common.

Включено как error в recommended и strict. Autofix отсутствует. Поддерживается ESLint и Oxlint.

Зачем нужно ​

Сохраняет явные импорты небольших общих утилит. common не становится модулем с общей barrel-точкой входа, которая скрывает реальные зависимости.

Что проверяет ​

Сообщает о посещённом index.* внутри слоя с ролью common и об импорте такого файла из другого файла. Проверяет путь, а не содержимое: даже index.ts без реэкспортов запрещён. Импорт каталога, разрешившийся в его index, тоже проверяется.

Примеры ​

  • common
    • format.ts
    • index.ts
    • ui
      • Button.vue
      • index.ts

Зачёркнутые index.ts запрещены. Корректные импорты ведут непосредственно к файлу.

Ошибка ​

ts
// src/common/index.ts
export { format } from './format'; 

// src/modules/User/view.ts
import { format } from '@common/index'; 

Корректно ​

ts
// src/common/format.ts
export const format = (value: string) => value.trim();

// src/modules/User/view.ts
import { format } from '@common/format'; 

Настройка ​

js
createConfig({ layerDirs: { common: 'shared' } });

Специального переключателя allowIndex нет. Для другого архитектурного соглашения отключите правило или используйте слой без роли common. Прямые options: группы пути, алиасы, layerDirs: { common: '…' }.

Когда ослаблять ​

При миграции старого shared с barrel-файлами можно временно отключить правило для этой части. Учитывайте разницу между files и ignore. Наличие запрещённого файла без посещения линтером эта проверка сама не сканирует.

Реализация ​

Исходный код · Тесты · Все правила