Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Рейтинг: 20.7% · 1 голосов
Frontend и backend разработка: JavaScript, TypeScript, React, Next.js, Vue, Node.js, PHP, REST и GraphQL API, вёрстка HTML/CSS и современные веб-приложения.
Ответить
Аватара пользователя
lonelygoblin
Сообщения: 61
Зарегистрирован: 12 май 2026, 12:45

Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение lonelygoblin »

Решил обновиться на Next.js 15 и React 19, запустил npm install next@latest react@latest react-dom@latest — и началось. Во-первых, куча peer dependency warnings от половины пакетов. Во-вторых, useFormState везде подчёркивается как deprecated, надо менять на useActionState. В-третьих, Ant Design 5.x начал выбрасывать предупреждения про ref. Это всё решаемо или лучше подождать пока экосистема устаканится? Проект коммерческий, дедлайн через месяц.
👍2 ❤️1 🔥 😄1 🤔1
✔ Лучший ответ сформирован автоматически — jwmaiden
Мигрировал три проекта на Next.js 15 за последние полгода. Вот конкретный порядок действий который у меня работает: 1) сначала обновляй только Next.js, держи React 18, убедись что всё стабильно. 2) Потом отдельно поднимай React до 19. 3) useFormState → useActionState это буквальный find & replace, API почти идентичный, только появился дополнительный pending state. 4) Для Ant Design — в их issues…
Перейти к ответу →
Аватара пользователя
jwmaiden
Сообщения: 8
Зарегистрирован: 11 май 2026, 09:04

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение jwmaiden »

✔ Лучший ответ — сформирован автоматически
Мигрировал три проекта на Next.js 15 за последние полгода. Вот конкретный порядок действий который у меня работает: 1) сначала обновляй только Next.js, держи React 18, убедись что всё стабильно. 2) Потом отдельно поднимай React до 19. 3) useFormState → useActionState это буквальный find & replace, API почти идентичный, только появился дополнительный pending state. 4) Для Ant Design — в их issues есть официальный workaround, они выкатили патч в 5.21+. Проверь свою версию. 5) --legacy-peer-deps используй только временно, потом чини зависимости нормально.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
pleki
Сообщения: 34
Зарегистрирован: 11 май 2026, 03:03

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение pleki »

Есть ещё одна засада которую не все знают: в Next.js 15 cookies() и headers() теперь асинхронные. Если в коде есть const cookieStore = cookies() без await — сломается в runtime. Прогони grep -r 'cookies()\|headers()\|params\.' . --include='*.ts' --include='*.tsx' по проекту и найди все места. У нас было около 30 файлов где надо было добавить await.
👍 ❤️ 🔥1 😄 🤔1
Аватара пользователя
rburr
Сообщения: 77
Зарегистрирован: 12 май 2026, 17:53

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение rburr »

@lonelygoblin, По поводу 'подождать' — не советую. Во-первых, в React 19.0.0-19.2.0 была критическая уязвимость в Server Components (CVSS 10.0, RCE), патч вышел в 19.2.1 и свежих минорных Next.js. Если у вас прод на старых версиях React 19 — это проблема безопасности. Во-вторых, Next.js 16 уже на горизонте, и там ещё изменения. Лучше мигрировать сейчас поэтапно, чем потом прыгать через две версии.
👍2 ❤️ 🔥 😄 🤔1
Аватара пользователя
Austkin
Сообщения: 83
Зарегистрирован: 11 май 2026, 03:40

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение Austkin »

shadcn/ui кстати отлично задокументировал совместимость с React 19 на своём сайте — там есть таблица компонентов и статус. Если используете shadcn, то апгрейд относительно безболезненный. Если свои компоненты или другие UI-киты — основная боль будет вокруг forwardRef, который в React 19 не нужен (ref теперь обычный prop). Старый код работает с deprecation warning, но лучше сразу почистить.
👍3 ❤️1 🔥 😄 🤔
Аватара пользователя
tsav
Сообщения: 52
Зарегистрирован: 11 май 2026, 01:00

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение tsav »

Для коммерческого проекта с дедлайном через месяц — мой совет: не мигрируй прямо сейчас. Сначала закрой дедлайн, потом спокойно мигрируй на feature-ветке. Миграция Next.js 14 → 15 на среднем проекте (40-60к строк) у нас заняла 5 рабочих дней с тестированием. Это не 'сломалось половина проекта', это нормальный объём работы для мажорного обновления.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
delphin
Сообщения: 72
Зарегистрирован: 13 май 2026, 02:35

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение delphin »

Никто не вспомнил про кодмоды, а зря. npx @next/codemod@canary upgrade latest делает большую часть правок автоматом, включая await для cookies() и headers(). Руками грепать 30 файлов это прошлый век. После кодмода у меня осталась только возня с antd, и там тоже есть готовое решение: пакет @ant-design/v5-patch-for-react-19, подключаешь один раз в layout и warnings про ref пропадают.
👍2 ❤️1 🔥1 😄 🤔
Аватара пользователя
mstrbates
Сообщения: 88
Зарегистрирован: 11 май 2026, 00:45

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение mstrbates »

@rburr, аргумент с CVE кривой. Уязвимость в Server Components самого React 19, человек сидит на 18, его это не касается от слова совсем. Это скорее довод не прыгать на 19.0, а ставить сразу 19.2.1+ когда дойдут руки. Пугать RCE того, кто еще не обновился, ну такое.
👍1 ❤️ 🔥 😄1 🤔
Аватара пользователя
fpga_lord
Сообщения: 56
Зарегистрирован: 16 май 2026, 06:00

Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?

Сообщение fpga_lord »

@pleki, грепать по params\. это конечно идея, но у нас такой греп выдал 400+ совпадений, половина это props.params в старых компонентах и всякий мусор из роутера. Проще прогнать кодмод next-async-request-api, он сам находит реальные места и оборачивает в await, а потом уже глазами просмотреть diff.
👍 ❤️ 🔥3 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Веб-разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость