- удалены обороты «Раздел описывает», «Этот раздел описывает» из 10 файлов docs/ru - вводные абзацы переписаны в формате «тема: категории/области» без перечисления конкретного содержимого раздела - удалён frontmatter description из basics/architecture/index.md (подтягивается первый абзац после h1 — про SLM Design) - в CONTRIBUTING.md добавлен раздел «Вводный абзац» с правилами и блоками «Хорошо/Плохо»: что делать, чего избегать, проверка на излишнюю конкретику
4.7 KiB
4.7 KiB
title
| title |
|---|
| Структура проекта |
Структура проекта
Файловая организация Next.js-проекта по архитектуре SLM.
Корень репозитория
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 без обработки сборщиком:
public/
└── og-image.png
Компоненты, стили и другой исходный код здесь не размещаются.
Папка src/
src/
├── app/ # Роутинг Next.js, провайдеры, глобальные стили
├── layouts/ # Каркасы страниц (header, footer, sidebar)
├── screens/ # Контент конкретной страницы
├── widgets/ # Составные блоки интерфейса, не привязанные к домену
├── business/ # Бизнес-домены (auth, catalog, orders)
├── infrastructure/ # Техсервисы (theme, i18n, API-адаптеры)
├── ui/ # UI-кит без бизнес-логики
└── shared/ # Общие ресурсы (утилиты, типы, стили)
Принципы организации слоёв описаны в разделе Архитектура.
Папка app/
Точка входа приложения: инициализация (провайдеры, глобальные стили) и файловый роутинг Next.js (layout.tsx, page.tsx, route-сегменты).
src/app/
├── providers/ # Провайдеры приложения
├── styles/ # Глобальные стили
├── layout.tsx # Корневой layout
└── page.tsx # Главная страница
Папка .templates/
Содержит шаблоны для генерации кода. Каждый подкаталог — шаблон отдельного типа модуля:
.templates/
├── component/ # Шаблон компонента
├── screen/ # Шаблон экрана
├── layout/ # Шаблон layout
├── widget/ # Шаблон виджета
├── module/ # Шаблон бизнес-модуля
└── store/ # Шаблон стора
Подробнее о генерации описано в разделе Шаблоны и генерация кода.
Конфигурационные файлы
| Файл | Назначение |
|---|---|
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_ доступны в клиентском коде. Остальные доступны только на сервере.