Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
Рейтинг: 20.7% · 1 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- lonelygoblin
- Сообщения: 61
- Зарегистрирован: 12 май 2026, 12:45
Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
Решил обновиться на 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. Это всё решаемо или лучше подождать пока экосистема устаканится? Проект коммерческий, дедлайн через месяц.
✔ Лучший ответ сформирован автоматически — jwmaiden
Мигрировал три проекта на Next.js 15 за последние полгода. Вот конкретный порядок действий который у меня работает: 1) сначала обновляй только Next.js, держи React 18, убедись что всё стабильно. 2) Потом отдельно поднимай React до 19. 3) useFormState → useActionState это буквальный find & replace, API почти идентичный, только появился дополнительный pending state. 4) Для Ant Design — в их issues…
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
✔ Лучший ответ — сформирован автоматически
Мигрировал три проекта на 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 используй только временно, потом чини зависимости нормально.
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
Есть ещё одна засада которую не все знают: в Next.js 15 cookies() и headers() теперь асинхронные. Если в коде есть const cookieStore = cookies() без await — сломается в runtime. Прогони grep -r 'cookies()\|headers()\|params\.' . --include='*.ts' --include='*.tsx' по проекту и найди все места. У нас было около 30 файлов где надо было добавить await.
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
@lonelygoblin, По поводу 'подождать' — не советую. Во-первых, в React 19.0.0-19.2.0 была критическая уязвимость в Server Components (CVSS 10.0, RCE), патч вышел в 19.2.1 и свежих минорных Next.js. Если у вас прод на старых версиях React 19 — это проблема безопасности. Во-вторых, Next.js 16 уже на горизонте, и там ещё изменения. Лучше мигрировать сейчас поэтапно, чем потом прыгать через две версии.
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
shadcn/ui кстати отлично задокументировал совместимость с React 19 на своём сайте — там есть таблица компонентов и статус. Если используете shadcn, то апгрейд относительно безболезненный. Если свои компоненты или другие UI-киты — основная боль будет вокруг forwardRef, который в React 19 не нужен (ref теперь обычный prop). Старый код работает с deprecation warning, но лучше сразу почистить.
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
Для коммерческого проекта с дедлайном через месяц — мой совет: не мигрируй прямо сейчас. Сначала закрой дедлайн, потом спокойно мигрируй на feature-ветке. Миграция Next.js 14 → 15 на среднем проекте (40-60к строк) у нас заняла 5 рабочих дней с тестированием. Это не 'сломалось половина проекта', это нормальный объём работы для мажорного обновления.
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
Никто не вспомнил про кодмоды, а зря. npx @next/codemod@canary upgrade latest делает большую часть правок автоматом, включая await для cookies() и headers(). Руками грепать 30 файлов это прошлый век. После кодмода у меня осталась только возня с antd, и там тоже есть готовое решение: пакет @ant-design/v5-patch-for-react-19, подключаешь один раз в layout и warnings про ref пропадают.
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
@rburr, аргумент с CVE кривой. Уязвимость в Server Components самого React 19, человек сидит на 18, его это не касается от слова совсем. Это скорее довод не прыгать на 19.0, а ставить сразу 19.2.1+ когда дойдут руки. Пугать RCE того, кто еще не обновился, ну такое.
Re: Обновился с Next.js 14 до 15 — сломалось половина проекта, как правильно мигрировать?
@pleki, грепать по params\. это конечно идея, но у нас такой греп выдал 400+ совпадений, половина это props.params в старых компонентах и всякий мусор из роутера. Проще прогнать кодмод next-async-request-api, он сам находит реальные места и оборачивает в await, а потом уже глазами просмотреть diff.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Prometheus задыхается на нашем масштабе, мигрировать на VictoriaMetrics или Mimir?
13 ответов · 1079 просмотров
-
-
-
- Terraform или OpenTofu в 2026? Стоит ли мигрировать после смены лицензии HashiCorp
7 ответов · 365 просмотров
-
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость