feod-structure/pages-private-modules
Область доступа приватных модулей страниц.
Включено как error в recommended и strict. Autofix отсутствует. Поддерживается ESLint и Oxlint.
Зачем нужно
Не позволяет переиспользовать реализацию одной страницы из другой. Общую логику нужно вынести в публичный модуль или common.
Что проверяет
Приватная область определяется первым сегментом с префиксом _ внутри pages:
| Расположение | Кто может импортировать |
|---|---|
pages/_home/** | Сама область и файлы pages/home.* |
pages/profile/_profile/** | Файлы внутри pages/profile/** |
Для корневой страницы допускаются и имена вроде home.test.ts.
Примеры
Значки у файлов поясняют область доступа. Ограничение касается направления импорта: само существование _home или _profile допустимо.
Ошибка
// src/pages/settings.ts
import { useHome } from './_home';
// src/pages/admin/index.ts
import { header } from '../profile/_profile/header'; Корректно
// src/pages/home.ts
import { useHome } from './_home';
// src/pages/profile/index.ts
import { header } from './_profile/header'; Настройка
createConfig({ layerDirs: { pages: 'screens' } });Префикс _ фиксирован. Прямые options принимают группы пути, алиасы, layerDirs: { pages: '…' }. Проверка подключается для слоя с ролью pages, включая commands в наборе cliLayers.
Связанные правила
Это ограничение приватной области страницы. Направления зависимостей страниц и публичные входы бизнес-модулей проверяет layer-imports. Для переиспользуемой функциональности перенос в modules сохраняет явную границу API.