Orbit
Поддерживаемые фреймворки и среды выполнения в Orbit
Orbit builds any project that installs with npm, yarn or pnpm and produces a folder of files or a Node.js server, and it detects the framework and package manager for you so most projects deploy…
Orbit создает любой проект, который устанавливается с помощью npm, yarn или pnpm и создает папку файлов или сервер Node.js. Он автоматически определяет фреймворк и диспетчер пакетов, поэтому большинство проектов развертываются вообще без конфигурации сборки. В этом руководстве описано, что определяется автоматически, какие параметры требуются для каждого популярного фреймворка, когда нужно включить режим сервера и как выбрать версию Node.js.
Что Orbit определяет автоматически
Когда запускается сборка, Orbit записывает найденную информацию и показывает её вам:
- Фреймворк отображается на странице сведений о развертывании и как значок на карточках развертывания в обзоре проекта.
- Диспетчер пакетов выбирается на основе вашего файла блокировки:
package-lock.jsonуказывает на npm,yarn.lockуказывает на yarn,pnpm-lock.yamlуказывает на pnpm.
Все параметры сборки в разделе Settings являются необязательными. Оставьте поле пустым, и его подсказка покажет, что будет использоваться вместо этого: Install command показывает npm ci (auto-detected), Build command показывает npm run build (auto-detected), и Output directory показывает dist (auto-detected).

Сохраните ровно один файл блокировки. Если в репозитории находятся оба файла package-lock.json и yarn.lock, диспетчер пакетов, выбранный Orbit, может отличаться от того, который вы используете локально, и вы получите установку, которая ведет себя иначе, чем на вашей машине, без видимой причины. Удалите тот, который вы не используете.
Параметры по фреймворку
Это значения, которые нужны каждому фреймворку. Если Orbit поставляется с шаблоном стартера для фреймворка, этот шаблон использует именно эти параметры.
| Фреймворк | Команда сборки | Выходная директория | Режим сервера |
|---|---|---|---|
| Next.js, статический экспорт | npm run build | out | Off |
| Next.js, SSR или ISR | npm run build | .next | On |
| Astro, статический | astro build | dist | Off |
| Astro, сервер или гибридный | astro build | dist | On |
| Vite (React, Vue, Svelte) | npm run build | dist | Off |
| SvelteKit | npm run build | build | Зависит от адаптера |
| Nuxt 3 | npm run build | .output | On |
| Remix | npm run build | build | On |
| Express или обычный Node API | npm run build | dist | On |
| Create React App | npm run build | build | Off |
| Простой HTML или статический генератор | оставьте пустым, или команда вашего генератора | . или папка, которую он создает | Off |
Vite всегда записывает в dist, если вы не установили build.outDir в vite.config.ts. Выходная папка Astro это dist во всех режимах; то, что изменяется между режимами, это нужен ли вам режим сервера, а не куда попадают файлы.
Режим сервера
Режим сервера это переключатель в разделе Settings под Runtime. Когда он включен, Orbit держит машину сборки в работающем состоянии npm start после каждого развертывания вместо обслуживания папки статических файлов.
Включите его для Next.js с SSR, Remix, Nuxt, Express API и всего остального, что не является статическим экспортом. Оставьте его выключенным для подлинно статической сборки.
Он применяется со следующего развертывания, а не к развертыванию, которое в настоящее время находится в режиме live.
Классический признак отсутствия режима сервера это сайт, на котором главная страница загружается идеально, а каждый динамический маршрут возвращает 404. Сборка прошла успешно, файлы были опубликованы, и просто не запущен сервер для обработки маршрутов. Если вы видите это, включите режим сервера и переразвертайте, прежде чем что-либо менять.
Версия Node.js
Установите Node.js version в разделе Settings под Build settings. Введите только номер основной версии: 18, 20 или 22. Оставьте пустым, чтобы использовать платформный по умолчанию.
Версия применяется как при сборке, так и при включенном режиме сервера, во время выполнения.
Явно закрепите версию вместо того, чтобы полагаться на значение по умолчанию. Зависимость, которая требует более новый Node, чем значение по умолчанию, не позволяет установке выполниться с ошибкой, которая не явно это указывает, и закрепление избегает целого класса сбоев сборки "это работало вчера".
Монорепозитории
Установите Root directory на подпапку, содержащую приложение, например apps/web. Orbit переходит в эту папку перед запуском команд установки и сборки.
Он также делает что-то, что вам нужно, но вы можете не ожидать: отправки, которые изменяют только файлы вне этого пути, автоматически пропускаются. Монорепозиторий с четырьмя проектами Orbit поэтому перестраивает только приложения, которых коммит фактически касался.
Каждая среда может отдельно переопределять корневую папку в разделе Staging: build overrides в Settings, что полезно, когда staging создает другое рабочее пространство.
Пользовательские параметры сборки
Переопределите что-либо в разделе Settings под Build settings:
| Поле | Пример | Примечания |
|---|---|---|
| Install command | npm ci | Или yarn install --frozen-lockfile, pnpm install --frozen-lockfile |
| Build command | npm run build:prod | Запустить точно как написано |
| Output directory | dist/client | Папка, опубликованная после сборки |
| Root directory | apps/frontend | Подпапка монорепозитория |
| Node.js version | 20 | Только номер основной версии |
Пустое значение означает автоматическое определение. Нажмите Save на карточке Build settings, чтобы применить.
Staging может переопределять любой из этих параметров независимо в разделе Staging: build overrides. Поле, оставленное пустым там, наследует значение уровня проекта, поэтому вы можете изменить только команду сборки для staging и оставить все остальное без изменений.
Кэш сборки
Orbit кэширует node_modules между сборками на планах Liftoff и Apex. Когда кэш используется, развертывание показывает значок Cache hit и фаза установки намного короче. Сборка без кэша показывает Cold build.
Чтобы принудить полную переустановку, откройте Settings, затем Clear build cache и подтвердите. Следующее развертывание для каждой среды запускает полную установку с нуля. Это нельзя отменить, и сборка после этого будет медленной.
Ресурсы машины сборки
Размер машины сборки зависит от вашего плана, что имеет значение для больших сборок:
| План | vCPU | RAM | Disk | Лимит времени |
|---|---|---|---|---|
| Launch | 1 | 1 GB | 4 GB | 30 минут |
| Liftoff | 2 | 2 GB | 8 GB | 30 минут |
| Apex | 4 | 4 GB | 16 GB | 30 минут |
Сборка, которая исчерпывает память или заполняет диск, завершается с ошибкой, которая названа в этой категории сбоя на странице развертывания. Увеличение NODE_OPTIONS=--max-old-space-size помогает только до фактической оперативной памяти машины.
Начало работы с шаблона
Если вы хотите рабочее развертывание еще до того, как у вас есть репозиторий, используйте шаблон стартера. На странице New project переключитесь с Import Git Repo на Start from Template и выберите один: Next.js с shadcn/ui, маркетинговый сайт Astro, Remix Indie Stack, стартер SvelteKit, минимальное приложение Nuxt 3 или Express REST API. Orbit копирует шаблон, применяет правильные параметры сборки и развертывает его.
Дополнительное чтение
- Настройка команды сборки и выходной папки для деталей по каждому фреймворку и обычных ошибок
- Устранение неполадок при сбое сборок
- Лимиты плана Orbit