Конфигурация
Archora читает опциональный archora.config.{ts,js,json,mjs,cjs} из корня проекта. Без файла конфига он работает на разумных дефолтах — конфиг нужен для тонкой настройки.
Схема
// archora.config.ts
import { defineConfig } from '@archora/core/config';
export default defineConfig({
// обнаружение файлов
include: ['src/**/*'],
exclude: ['**/*.spec.ts', '**/__tests__/**'],
// объявленные слои (FSD-стиль или ваш собственный)
// направление "разрешено импортировать": app → pages → widgets → features → entities → shared
layers: [
{ name: 'app', patterns: ['src/app/**'] },
{ name: 'pages', patterns: ['src/pages/**'] },
{ name: 'widgets', patterns: ['src/widgets/**'] },
{ name: 'features', patterns: ['src/features/**'] },
{ name: 'entities', patterns: ['src/entities/**'] },
{ name: 'shared', patterns: ['src/shared/**'] },
],
// jump-to-file в редакторе (альтернатива — env FRONTSCOPE_EDITOR)
editor: 'vscode', // 'vscode' | 'webstorm' | 'cursor' | 'idea' | string
});Слои
Слой — именованная корзина модулей. Порядок в layers определяет, что разрешено импортировать: ранние слои могут импортировать поздние, никогда наоборот.
Обратный импорт регистрируется как layer violation в панели Insights. На это можно навесить CI-гейт — см. check.
Per-модульные overrides через .archora.json
archora.config.{ts,js,json} задаёт порядок слоёв и дефолтное соответствие glob → слой. Для точечных переопределений — «этот хелпер на самом деле принадлежит shared, а не features, где он лежит по пути» — существует соседний .archora.json:
{
"layerOverrides": {
"src/features/auth/lib/jwt.ts": "shared",
"src/legacy/**": "infra"
}
}.archora.json коммитится в репо: overrides — это проектные архитектурные решения, а не личные предпочтения. Десктоп-приложение даёт GUI-редактор этого файла под иконкой Layers в TopBar проекта (/project/:id/layer-rules) — live-предпросмотр нарушений на каждый keystroke, atomic-save с сохранением остальных полей JSON. См. Работа с графом.
Исключённый код
Тесты и stories исключены по умолчанию (*.test.*, *.spec.*, *.stories.*). Сгенерированные .d.ts исключены. Build-конфиги (vite.config, webpack.config, ...) детектятся и помечаются как infra — остаются в графе, но фильтруются из метрик по умолчанию.
Без конфига
Без файла конфигурации Archora:
- Включает всё под найденными entry-точками.
- Не имеет правил слоёв (значит, нарушений не будет).
- Использует
vscodeдля «Open in editor».
Этого достаточно для первого скана. Конфиг добавляйте, когда захотите ужесточить include-глобы или включить enforcement слоёв.