- Добавлена документация SLM-архитектуры, базовых правил и прикладных разделов - Добавлены разделы: стили, SVG-спрайты, шаблоны генерации, PostCSS, REST, Realtime - Удалены устаревшие файлы (спрайты, скрипты, стили из app/)
102 lines
4.9 KiB
Markdown
102 lines
4.9 KiB
Markdown
---
|
||
title: Структура проекта
|
||
description: Из чего состоит проект и где что лежит.
|
||
---
|
||
|
||
# Структура проекта
|
||
|
||
Из чего состоит проект и где что лежит.
|
||
|
||
## Корень репозитория
|
||
|
||
```text
|
||
project-root/
|
||
├── .templates/ # Шаблоны для генерации модулей
|
||
├── .vscode/ # Настройки и рекомендуемые расширения VS Code
|
||
├── public/ # Статика, доступная по прямому URL
|
||
├── src/ # Исходный код приложения
|
||
├── .env.example # Переменные окружения проекта (шаблон)
|
||
├── .env # Переменные окружения проекта (не коммитить)
|
||
├── .gitignore
|
||
├── AGENTS.md # Инструкции для AI-агентов
|
||
├── biome.json # Линтер и форматтер (вместо ESLint + Prettier)
|
||
├── next.config.ts # Конфигурация Next.js
|
||
├── package.json # Зависимости и скрипты
|
||
├── postcss.config.mjs # Конфигурация PostCSS
|
||
└── tsconfig.json # Конфигурация TypeScript
|
||
```
|
||
|
||
## Папка `public/`
|
||
|
||
Хранит статические файлы, которые отдаются по прямому URL без обработки сборщиком:
|
||
|
||
```text
|
||
public/
|
||
└── og-image.png
|
||
```
|
||
|
||
Компоненты, стили и другой исходный код здесь не размещаются.
|
||
|
||
## Папка `src/`
|
||
|
||
```text
|
||
src/
|
||
├── app/ # Роутинг Next.js и точка входа приложения
|
||
├── layouts/ # Каркасы страниц (header, footer, sidebar)
|
||
├── screens/ # Контент конкретной страницы
|
||
├── widgets/ # Составные блоки интерфейса, не привязанные к домену
|
||
├── business/ # Бизнес-домены (auth, catalog, orders)
|
||
├── infrastructure/ # Техсервисы (theme, i18n, API-адаптеры)
|
||
├── ui/ # UI-кит без бизнес-логики
|
||
└── shared/ # Общие ресурсы (утилиты, типы, стили)
|
||
```
|
||
|
||
Принципы организации слоёв описаны в разделе [Архитектура](../basics/architecture/).
|
||
|
||
### Папка `app/`
|
||
|
||
Точка входа приложения и файловый роутинг Next.js (`layout.tsx`, `page.tsx`, route-сегменты).
|
||
`app/` подключает готовую инициализацию из нижних слоёв, но не реализует провайдеры, стили, UI-компоненты, хуки, сторы или сервисы.
|
||
|
||
Подробнее о границах слоя: [Архитектура → Слои → App](../basics/architecture/reference/layers.md#слой-app).
|
||
|
||
```text
|
||
src/app/
|
||
├── layout.tsx # Корневой layout
|
||
└── page.tsx # Главная страница
|
||
```
|
||
|
||
## Папка `.templates/`
|
||
|
||
Содержит шаблоны для генерации кода. Каждый подкаталог — шаблон отдельного типа модуля:
|
||
|
||
```text
|
||
.templates/
|
||
├── component/ # Шаблон компонента
|
||
├── screen/ # Шаблон экрана
|
||
├── layout/ # Шаблон layout
|
||
├── widget/ # Шаблон виджета
|
||
├── module/ # Шаблон бизнес-модуля
|
||
└── store/ # Шаблон стора
|
||
```
|
||
|
||
Подробнее о генерации описано в разделе [Шаблоны генерации](./templates/templates-intro.md).
|
||
|
||
## Конфигурационные файлы
|
||
|
||
| Файл | Назначение |
|
||
|---|---|
|
||
| `next.config.ts` | Настройки Next.js: редиректы, переменные окружения, webpack |
|
||
| `tsconfig.json` | Настройки TypeScript: пути, строгость, таргет |
|
||
| `biome.json` | Правила линтера и форматтера Biome |
|
||
| `postcss.config.mjs` | Подключение PostCSS-плагинов (CSS Modules, custom media) |
|
||
| `package.json` | Зависимости, версии, npm-скрипты |
|
||
| `AGENTS.md` | Инструкции для AI-агентов, работающих в проекте |
|
||
|
||
## Переменные окружения
|
||
|
||
- `.env` — переменные окружения проекта, запрещено коммитить
|
||
- `.env.example` — шаблон, коммитится в репозиторий
|
||
|
||
Переменные с префиксом `NEXT_PUBLIC_` доступны в клиентском коде. Остальные доступны только на сервере.
|