Структура и организация проекта
Эта страница содержит обзор всех соглашений о папках и файлах в Next.js, а также рекомендации по организации вашего проекта.
Соглашения о папках и файлах
Папки верхнего уровня
Папки верхнего уровня используются для организации кода приложения и статических ресурсов.

app | Роутер приложения (App Router) |
pages | Роутер страниц (Pages Router) |
public | Статические ресурсы для раздачи |
src | Опциональная папка исходного кода |
Файлы верхнего уровня
Файлы верхнего уровня используются для настройки приложения, управления зависимостями, запуска middleware, интеграции инструментов мониторинга и определения переменных окружения.
Next.js | |
next.config.js | Конфигурационный файл Next.js |
package.json | Зависимости и скрипты проекта |
instrumentation.ts | Файл для OpenTelemetry и инструментации |
middleware.ts | Middleware для запросов в Next.js |
.env | Переменные окружения |
.env.local | Локальные переменные окружения |
.env.production | Переменные окружения для production |
.env.development | Переменные окружения для development |
.eslintrc.json | Конфигурационный файл ESLint |
.gitignore | Файлы и папки для игнорирования в Git |
next-env.d.ts | Файл деклараций TypeScript для Next.js |
tsconfig.json | Конфигурационный файл TypeScript |
jsconfig.json | Конфигурационный файл JavaScript |
Соглашения о файлах
_app | .js .jsx .tsx | Кастомное приложение |
_document | .js .jsx .tsx | Кастомный документ |
_error | .js .jsx .tsx | Кастомная страница ошибки |
404 | .js .jsx .tsx | Страница 404 |
500 | .js .jsx .tsx | Страница 500 |
Маршруты
Соглашение о папках | ||
index | .js .jsx .tsx | Домашняя страница |
folder/index | .js .jsx .tsx | Вложенная страница |
Соглашение о файлах | ||
index | .js .jsx .tsx | Домашняя страница |
file | .js .jsx .tsx | Вложенная страница |
Динамические маршруты
Соглашение о папках | ||
[folder]/index | .js .jsx .tsx | Динамический сегмент маршрута |
[...folder]/index | .js .jsx .tsx | Сегмент для всех путей |
[[...folder]]/index | .js .jsx .tsx | Опциональный сегмент для всех путей |
Соглашение о файлах | ||
[file] | .js .jsx .tsx | Динамический сегмент маршрута |
[...file] | .js .jsx .tsx | Сегмент для всех путей |
[[...file]] | .js .jsx .tsx | Опциональный сегмент для всех путей |