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).

Параметры сборки в параметрах проекта Orbit

Сохраните ровно один файл блокировки. Если в репозитории находятся оба файла package-lock.json и yarn.lock, диспетчер пакетов, выбранный Orbit, может отличаться от того, который вы используете локально, и вы получите установку, которая ведет себя иначе, чем на вашей машине, без видимой причины. Удалите тот, который вы не используете.

Параметры по фреймворку

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

ФреймворкКоманда сборкиВыходная директорияРежим сервера
Next.js, статический экспортnpm run buildoutOff
Next.js, SSR или ISRnpm run build.nextOn
Astro, статическийastro builddistOff
Astro, сервер или гибридныйastro builddistOn
Vite (React, Vue, Svelte)npm run builddistOff
SvelteKitnpm run buildbuildЗависит от адаптера
Nuxt 3npm run build.outputOn
Remixnpm run buildbuildOn
Express или обычный Node APInpm run builddistOn
Create React Appnpm run buildbuildOff
Простой 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 commandnpm ciИли yarn install --frozen-lockfile, pnpm install --frozen-lockfile
Build commandnpm run build:prodЗапустить точно как написано
Output directorydist/clientПапка, опубликованная после сборки
Root directoryapps/frontendПодпапка монорепозитория
Node.js version20Только номер основной версии

Пустое значение означает автоматическое определение. Нажмите Save на карточке Build settings, чтобы применить.

Staging может переопределять любой из этих параметров независимо в разделе Staging: build overrides. Поле, оставленное пустым там, наследует значение уровня проекта, поэтому вы можете изменить только команду сборки для staging и оставить все остальное без изменений.

Кэш сборки

Orbit кэширует node_modules между сборками на планах Liftoff и Apex. Когда кэш используется, развертывание показывает значок Cache hit и фаза установки намного короче. Сборка без кэша показывает Cold build.

Чтобы принудить полную переустановку, откройте Settings, затем Clear build cache и подтвердите. Следующее развертывание для каждой среды запускает полную установку с нуля. Это нельзя отменить, и сборка после этого будет медленной.

Ресурсы машины сборки

Размер машины сборки зависит от вашего плана, что имеет значение для больших сборок:

ПланvCPURAMDiskЛимит времени
Launch11 GB4 GB30 минут
Liftoff22 GB8 GB30 минут
Apex44 GB16 GB30 минут

Сборка, которая исчерпывает память или заполняет диск, завершается с ошибкой, которая названа в этой категории сбоя на странице развертывания. Увеличение 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 копирует шаблон, применяет правильные параметры сборки и развертывает его.

Дополнительное чтение

Вам всё ещё нужна помощь?

Напишите нам на support@kapsulehost.com или откройте чат в KPanel.

Открыть KPanel
Поддерживаемые фреймворки и среды выполнения в Orbit