--- title: Структура проекта scope: applied keywords: [структура проекта, папки, src/app, src/shared, SLM Design, Next.js структура] when: "Организация папок и файлов в Next.js проекте" --- # Структура проекта Раздел описывает расположение файлов и папок в проекте Next.js (App Router). ## Корень репозитория ```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-кит без бизнес-логики (button, modal, toast) └── shared/ # Общие ресурсы (утилиты, типы, стили) ``` Принципы организации слоёв описаны в разделе [Архитектура](../basics/architecture). ### Папка `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/ # Шаблон виджета ├── business/ # Шаблон бизнес-модуля └── store/ # Шаблон стора ``` Подробнее о генерации описано в разделе [Шаблоны и генерация кода](./templates-generation). ## Конфигурационные файлы | Файл | Назначение | |---|---| | `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_` доступны в клиентском коде. Остальные доступны только на сервере.