Files
nextjs-style-guide/docs/ru/applied/project-structure.md
S.Gromov 464c709859
All checks were successful
CI/CD Pipeline / docker (push) Successful in 54s
CI/CD Pipeline / deploy (push) Successful in 6s
docs: убрать «воду» из вводных абзацев разделов
- удалены обороты «Раздел описывает», «Этот раздел описывает» из
  10 файлов docs/ru
- вводные абзацы переписаны в формате «тема: категории/области»
  без перечисления конкретного содержимого раздела
- удалён frontmatter description из basics/architecture/index.md
  (подтягивается первый абзац после h1 — про SLM Design)
- в CONTRIBUTING.md добавлен раздел «Вводный абзац» с правилами
  и блоками «Хорошо/Плохо»: что делать, чего избегать, проверка
  на излишнюю конкретику
2026-04-25 20:15:10 +03:00

4.7 KiB
Raw Blame History

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