Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Создание проекта

Проект Next.js создаёт официальная утилита create-next-app. Она скачивает фреймворк, настраивает TypeScript, линтер и стили и кладёт стартовую страницу. Next.js 16 требует Node.js 20.9 или новее, лучше — актуальную LTS-версию.

Создание

npx create-next-app@latest blog

Сначала утилита спросит, использовать ли рекомендуемые настройки. Ответ «Yes, use recommended defaults» подходит для курса: он включает TypeScript, ESLint, Tailwind CSS, App Router и псевдоним импорта @/*. Если выбрать свои настройки, ответьте так:

ВопросОтвет
TypeScriptYes
LinterESLint
React CompilerNo
Tailwind CSSYes
src/ directoryNo
App RouterYes
Import aliasNo (останется @/*)
AGENTS.mdНа ваш выбор

Вопроса о Turbopack нет: в Next.js 16 этот быстрый сборщик включён по умолчанию.

Запуск

cd blog
npm run dev

Команда запускает сервер разработки. Откройте http://localhost:3000 — появится стартовая страница Next.js. Сервер следит за файлами: после сохранения изменения сразу видны в браузере.

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

blog/
├── app/
│   ├── favicon.ico
│   ├── globals.css
│   ├── layout.tsx
│   └── page.tsx
├── public/
├── AGENTS.md
├── eslint.config.mjs
├── next.config.ts
├── package.json
└── tsconfig.json
Файл или папкаЧто внутри
app/Страницы, макеты и API — основная работа идёт здесь
app/page.tsxГлавная страница, адрес /
app/layout.tsxКорневой макет: общий HTML для всех страниц
app/globals.cssОбщие стили
public/Файлы, которые отдаются как есть: картинки, robots.txt
next.config.tsНастройки Next.js
eslint.config.mjsПравила линтера ESLint
AGENTS.mdПодсказки для ИИ-помощников; на работу сайта не влияет

Папки для своего кода — components/ для компонентов и lib/ для функций — создают в корне проекта рядом с app/.

Команды

Скрипты лежат в package.json:

npm run dev     # сервер разработки
npm run build   # сборка для продакшена
npm run start   # запуск собранного приложения
npm run lint    # проверка кода линтером (запускает eslint)

В Next.js 16 команды next lint больше нет: скрипт lint вызывает ESLint напрямую, а npm run build линтер не запускает.

Псевдоним @

Проект создан с настройкой @/* в tsconfig.json. Она позволяет писать пути от корня проекта вместо длинных ../../:

// app/page.tsx
import { getPosts } from '@/lib/posts';

Такой импорт работает из любой папки проекта.

Частая ошибка

Запускать npm run dev из родительской папки, а не из папки проекта. Команда ищет package.json в текущей папке и без него завершится ошибкой «Missing script: dev». Сначала перейдите в папку проекта командой cd blog.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.