Skip to content

Структура проекта

Файловая организация Next.js-проекта по архитектуре SLM.

Корень репозитория

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/         # Общие ресурсы (утилиты, типы, стили)

Принципы организации слоёв описаны в разделе Архитектура.

Папка app/

Точка входа приложения: инициализация (провайдеры, глобальные стили) и файловый роутинг Next.js (layout.tsx, page.tsx, route-сегменты).

text
src/app/
├── providers/    # Провайдеры приложения
├── styles/       # Глобальные стили
├── layout.tsx    # Корневой layout
└── page.tsx      # Главная страница

Папка .templates/

Содержит шаблоны для генерации кода. Каждый подкаталог — шаблон отдельного типа модуля:

text
.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_ доступны в клиентском коде. Остальные доступны только на сервере.