Перейти к содержимому

Build Settings

Настройки сборки определяют как ONREZA собирает и деплоит ваш проект.

Project → Settings → Build & Deployment

Выбранный фреймворк определяет значения по умолчанию для остальных настроек.

  • Auto-detected — ONREZA автоматически определил фреймворк
  • Override — вы вручную выбрали другой фреймворк

Команда для сборки проекта.

Значение по умолчанию: npm run build

Примеры:

Окно терминала
npm run build
yarn build
pnpm run build
bun run build
next build && next export

Override:

  • Если поле пустое — используется значение по умолчанию для фреймворка
  • Если заполнено — используется ваше значение

Папка с результатом сборки, которая будет развёрнута.

Примеры по фреймворкам:

  • Next.js (static): out
  • Vite: dist
  • Create React App: build
  • Nuxt: .output/public

Команда для установки зависимостей.

Значение по умолчанию: Определяется автоматически по lock-файлу:

  • package-lock.jsonnpm install
  • yarn.lockyarn install
  • pnpm-lock.yamlpnpm install
  • bun.lockbbun install

Путь к корню проекта относительно репозитория. Используется для монорепозиториев.

По умолчанию: . (корень репозитория)

Пример для монорепо:

my-monorepo/
├── packages/
│ ├── web/ ← Root Directory: packages/web
│ └── api/
└── package.json

Если включено, файлы за пределами Root Directory также будут включены в контекст сборки. Полезно для монорепозиториев с общими зависимостями.

По умолчанию: выключено

Когда включать:

  • Монорепо с общими пакетами в корне
  • Shared configuration files (tsconfig.base.json)
  • Workspaces с hoisted зависимостями

Версия рантайма зависит от package manager вашего проекта:

ВерсияОписание
Node 20LTS, рекомендуется
Node 22Current
Node 24Latest

Для проектов с bun.lock или bun.lockb используется Bun 1.x (latest). Выбор версии недоступен — всегда используется последняя стабильная версия Bun.

Максимальное время сборки в минутах.

По умолчанию: 20 минут

Если сборка занимает больше времени, она будет отменена с ошибкой.

Количество одновременных сборок для проекта.

ПланЛимит
Hobby1
Pro3

Только для Pro плана

Если включено, production деплои (из main ветки) будут иметь приоритет в очереди над preview деплоями.

Находится в: Project → Settings → Git

Позволяет пропустить сборку при определённых условиях.

ОпцияОписание
AutomaticКаждый коммит создаёт деплой
Only ProductionСборка только для production (main branch)
Only PreviewСборка только для preview (остальные ветки)
Only ChangesСборка только если есть изменения в отслеживаемых файлах
Changes in FolderСборка только если изменения в указанной папке
NeverНикогда не собирать
Bash ScriptПользовательный bash скрипт для проверки
Node ScriptПользовательный Node.js скрипт для проверки

Полезно для монорепозиториев — собирать только если изменения затронули этот пакет.

Пример:

  • Root Directory: packages/web
  • Ignored Build Step: Changes in Folder
  • Folder: packages/web

Bash скрипт, который определяет нужно ли запускать сборку.

Пример:

Окно терминала
# Пропустить если изменения только в README
if git diff --name-only HEAD~1 | grep -qvE '^README\.md$'; then
exit 1 # Запустить сборку
else
exit 0 # Пропустить сборку
fi
  • Exit code 0 — пропустить сборку
  • Exit code 1 — запустить сборку

ONREZA автоматически предоставляет переменные при сборке и runtime:

ПеременнаяОписание
ONREZA_ENVТип окружения: production, preview, development, custom
ONREZA_PROTECTION_BYPASSСекрет для обхода защиты preview (если настроен)

Если отключено, системные переменные не будут доступны при сборке. Это может быть нужно если они конфликтуют с вашим кодом.

ONREZA автоматически кэширует:

  • node_modules/ — зависимости
  • .next/cache/ — кэш Next.js
  • Другие кэши фреймворков

Это ускоряет последующие сборки.

Для ускорения установки зависимостей:

  • Используйте npm ci вместо npm install
  • Используйте pnpm или bun для более быстрой установки
  1. Проверьте Build Timeout — возможно нужно увеличить
  2. Оптимизируйте сборку (code splitting, dynamic imports)
  3. Убедитесь что кэширование работает
  4. Рассмотрите upgrade до Pro плана для увеличения ресурсов
  1. Убедитесь что команда есть в scripts в package.json
  2. Или используйте полный путь: npx next build
  1. Проверьте что сборка завершилась успешно
  2. Проверьте правильность Output Directory
  3. Проверьте конфигурацию фреймворка (может генерировать в другую папку)