Проект на Next.js не собирается
Next.js в режиме разработки прощает многое, а next build проверяет типы и линтер, пререндерит страницы на сервере и требует корректного разделения серверных и клиентских компонентов. Поэтому ошибки всплывают только при сборке. Чинить нужно саму причину, а не отключать проверки флагами ignoreBuildErrors.
Первая помощь и как чиним
- 1Воспроизвести сборку
Запускаем next build локально с той же версией Node и теми же переменными, что на хостинге.
- 2Разобрать ошибки по типам
Типы и линтер, серверные и клиентские компоненты, пререндер, импорты.
- 3Исправить причины
Правим типы, границы use client, обращения к браузерным API и данным при сборке.
- 4Проверить рендер
Решаем, какие страницы статические, а какие динамические, и проверяем их на проде.
- 5Закрепить
Сборка запускается автоматически при каждом пуше, чтобы ошибки не копились.
Чинить самому или отдать в «аптечку»
Мы уже наступили на эти грабли — вам не придётся
Аптечка: что с проектом?
3 вопроса — и мы скажем, сколько стоит починка. Чек-лист безопасности проекта в подарок.
Интервью с собственником и РОПом, аудит текущей CRM и источников заявок.
1–3 дняВоронки, роли, точки контроля. Согласуем до того, как что-то настраивать.
3–5 днейНастраиваем Битрикс24 и дописываем недостающие инструменты. Демо каждую неделю.
1–4 неделиОбучение, база знаний, поддержка. Дорабатываем, пока цифры не поедут вверх.
дальше — с вамиПодробнееразвёрнутое описание, этапы и нюансы
Next.js — любимый фреймворк Cursor, v0 и Claude Code. Ловушка в том, что npm run dev показывает работающий сайт, а next build, который выполняет хостинг, падает с длинной ошибкой. Вот самые частые причины в проектах, написанных с ИИ, и что с ними делать.
Почему так происходит
- Ошибки типов. В dev-режиме они лишь подсвечиваются, а сборка по умолчанию на них останавливается (в версиях до 16 — ещё и на ошибках линтера):
Type error: Property 'x' does not exist. - Браузерные API на сервере.
window is not defined,localStorage is not defined— код выполняется при серверном рендере, где браузера нет. - Пропущенный
"use client". В App Router компоненты по умолчанию серверные, иuseState,useEffectили обработчики событий в них выдают ошибку. - Пререндер страниц. При сборке Next.js рендерит статические страницы заранее. Если страница обращается к базе или API, недоступным в среде сборки, или читает куки без пометки динамической, сборка падает.
useSearchParamsбезSuspense. Требует обернуть компонент в границуSuspense, иначе ошибка при сборке статической страницы.- Регистр в импортах. На macOS работает, на Linux-сервере сборки —
Module not found. - Смешение версий. ИИ пишет код для Pages Router в проекте на App Router или использует API из другой мажорной версии Next.js.
Что проверить самому
- Запустите сборку локально и сохраните полный вывод:
rm -rf .next && npm run build 2>&1 | tee build.log
- Найдите первую ошибку, а не последнюю — остальные часто её следствие.
- Для
window is not definedперенесите код вuseEffectили в клиентский компонент. - Проверьте версию Next.js в
package.jsonи сверяйте советы ИИ с документацией этой версии. - Сравните версию Node локально и на хостинге.
- Проверьте, заданы ли на хостинге переменные, нужные при сборке.
Когда звать разработчика. Одну-две ошибки типов или пропущенный "use client" можно исправить самому, дав ИИ полный текст ошибки и попросив объяснить причину. Помощь нужна, если ошибок десятки, если они появляются только на хостинге, если сборка падает на пререндере страниц с данными, если проект смешивает Pages Router и App Router или если ИИ предлагает обновить или откатить Next.js — смена мажорной версии в рабочем проекте часто ломает больше, чем чинит. Такие случаи лучше разбирать целиком.
Как чиним мы
Воспроизводим сборку в среде, идентичной вашему хостингу, разбираем ошибки по причинам и исправляем их в коде: типы, границы клиентских и серверных компонентов, стратегию рендера страниц, импорты. Если проект застрял между версиями Next.js, приводим его к одной. Настраиваем автоматическую сборку при каждом пуше, чтобы новая правка ИИ, ломающая сборку, была видна сразу. Подробнее — на странице «Аптечка вайб-кода», а правила профилактики — в статье «Почему вайб-код ломается».
Сколько стоит
Диагностика — 50 000 ₸, запуск и сборка проекта — 40 000 ₸, итого от 90 000 ₸ для небольшого проекта. Если вместе со сборкой нужен деплой на сервер, добавляется 50 000 ₸. Рассчитайте в калькуляторе.
Частые вопросы
Можно просто включить ignoreBuildErrors?
Сборка пройдёт, но ошибки типов часто означают реальные баги: undefined вместо данных, неправильные поля. Они просто проявятся у пользователей.
Сборка падает из-за нехватки памяти. Что делать?
Временно можно поднять лимит через NODE_OPTIONS=--max-old-space-size=4096. Если сборка не помещается в память сервера, лучше собирать проект в CI и выкладывать готовый результат.
Почему ошибка про базу данных во время сборки?
Next.js пытается заранее отрендерить страницы и обращается к базе, недоступной из среды сборки. Нужно сделать страницу динамической или дать сборке доступ к данным.
Сделаем так же у вас
Короткий созвон — и вы знаете срок и цену. Или посчитайте сами за 2 минуты.