Orbit

Ondersteunde Frameworks en Runtimes in 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 bouwt elk project dat met npm, yarn of pnpm installeert en een map met bestanden of een Node.js-server produceert. Het detecteert het framework en packagemanager voor je, zodat de meeste projecten zonder buildconfiguratie worden gedeployd. Deze gids behandelt wat wordt gedetecteerd, welke instellingen elk veelgebruikt framework nodig heeft, wanneer je servermodus moet inschakelen en hoe je een Node.js-versie kiest.

Wat Orbit Automatisch Detecteert

Wanneer een build wordt uitgevoerd, registreert Orbit wat het heeft gevonden en toont het aan jou:

  • Framework, op de deployment detailpagina en als badge op deployment kaarten op het projectoverzicht.
  • Packagemanager, gekozen uit je lockfile: package-lock.json geeft npm, yarn.lock geeft yarn, pnpm-lock.yaml geeft pnpm.

De buildinstellingen in Settings zijn allemaal optioneel. Laat een veld leeg en de placeholder geeft je aan wat in plaats daarvan wordt gebruikt: Install command toont npm ci (auto-detected), Build command toont npm run build (auto-detected), en Output directory toont dist (auto-detected).

Buildinstellingen in Orbit projectinstellingen

Commit exact één lockfile. Als zowel package-lock.json als yarn.lock in de repository staan, is de packagemanager die Orbit kiest mogelijk niet degene die je lokaal gebruikt, en je krijgt een installatie die anders werkt dan je machine zonder zichtbare reden. Verwijder degene die je niet gebruikt.

Instellingen Per Framework

Dit zijn de waarden die elk framework nodig heeft. Wanneer Orbit een startersjabloon voor het framework levert, gebruikt het sjabloon exact deze instellingen.

FrameworkBuild commandOutput directoryServer mode
Next.js, static exportnpm run buildoutUit
Next.js, SSR of ISRnpm run build.nextAan
Astro, staticastro builddistUit
Astro, server of hybridastro builddistAan
Vite (React, Vue, Svelte)npm run builddistUit
SvelteKitnpm run buildbuildHangt af van adapter
Nuxt 3npm run build.outputAan
Remixnpm run buildbuildAan
Express of een eenvoudige Node APInpm run builddistAan
Create React Appnpm run buildbuildUit
Gewone HTML of een statische generatorleeg laten, of de command van je generator. of de map die het schrijftUit

Vite schrijft altijd naar dist tenzij je build.outDir in vite.config.ts hebt ingesteld. De outputmap van Astro is dist in elke modus; wat tussen modi verandert, is of je servermodus nodig hebt, niet waar de bestanden terechtkomen.

Server Mode

Server mode is een schakelaar in Settings, onder Runtime. Wanneer deze aan staat, houdt Orbit de buildmachine actief en voert npm start uit na elke deploy in plaats van een map met statische bestanden te serveren.

Zet het aan voor Next.js met SSR, Remix, Nuxt, een Express API en alles wat geen statische export is. Laat het uit voor een echt statische build.

Het is van toepassing vanaf de volgende deploy, niet op de deployment die momenteel live is.

Het klassieke symptoom van een ontbrekende servermodus is een site waar de homepage perfect laadt en elke dynamische route een 404 retourneert. De build is geslaagd, de bestanden zijn gepubliceerd, en er draait gewoon geen server om de routes te beantwoorden. Als dit is wat je ziet, zet servermodus aan en deploy opnieuw voordat je iets anders verandert.

Node.js Versie

Stel Node.js version in Settings onder Build settings in. Voer alleen het major versienummer in: 18, 20 of 22. Laat het leeg om de standaardplatformversie te gebruiken.

De versie is van toepassing op zowel de build als, wanneer servermodus aan staat, de runtime.

Pin de versie expliciet in plaats van te vertrouwen op de standaard. Een afhankelijkheid die een nieuwere Node vereist dan de standaard, mislukt de installatie met een fout die dat niet duidelijk zegt, en pinnen elimineert een hele klasse van "het werkte gisteren" buildfouten.

Monorepos

Stel Root directory in op de submap die de app bevat, bijvoorbeeld apps/web. Orbit gaat naar die map voordat het je install- en buildcommands uitvoert.

Het doet ook iets wat je wilt maar misschien niet verwacht: pushes die alleen bestanden buiten dat pad wijzigen, worden automatisch overgeslagen. Een monorepo met vier Orbit-projecten bouwt dus alleen de apps opnieuw die een commit daadwerkelijk heeft gewijzigd.

Elke omgeving kan de rootmap afzonderlijk overschrijven, onder Staging: build overrides in Settings, wat handig is wanneer staging een ander werkgebied bouwt.

Aangepaste Buildinstellingen

Overschrijf alles in Settings, onder Build settings:

VeldVoorbeeldOpmerkingen
Install commandnpm ciOf yarn install --frozen-lockfile, pnpm install --frozen-lockfile
Build commandnpm run build:prodVoer exact uit zoals geschreven
Output directorydist/clientDe map gepubliceerd na de build
Root directoryapps/frontendMonorepo submap
Node.js version20Alleen major versie

Leeg betekent auto-detectie. Klik Save op de Build settings kaart om toe te passen.

Staging kan elk van deze onafhankelijk overschrijven, in de sectie Staging: build overrides. Een veld dat daar leeg is gelaten, erft de waarde op projectniveau, dus je kunt alleen de buildcommand voor staging wijzigen en alles anders ongewijzigd laten.

Build Cache

Orbit slaat node_modules tussen builds in cache op de Liftoff en Apex plannen. Wanneer de cache wordt gebruikt, toont de deployment een Cache hit badge en is de installatiefase veel korter. Een build zonder toont Cold build.

Als je een volledige herinstallatie wilt forceren, open je Settings, vervolgens Clear build cache, en bevestig. De volgende deployment voor elke omgeving voert een volledige installatie vanaf nul uit. Dit kan niet ongedaan worden gemaakt, en de build daarna zal langzaam zijn.

Build Machine Resources

De buildmachinegrootte hangt af van je plan, wat belangrijk is voor grote builds:

PlanvCPURAMDiskTime limit
Launch11 GB4 GB30 minuten
Liftoff22 GB8 GB30 minuten
Apex44 GB16 GB30 minuten

Een build die onvoldoende geheugen heeft of zijn schijf volmaakt, mislukt met die foutkategorie genoemd op de deploymentpagina. NODE_OPTIONS=--max-old-space-size verhogen helpt alleen tot het werkelijke RAM van de machine.

Beginnen Met een Sjabloon

Als je een werkende deployment wilt hebben voordat je een repository hebt, gebruik je een startersjabloon. Schakel op New project van Import Git Repo naar Start from Template en kies er een: Next.js met shadcn/ui, een Astro marketingsite, de Remix Indie Stack, een SvelteKit starter, een minimale Nuxt 3 app of een Express REST API. Orbit kopieert het sjabloon, past de juiste buildinstellingen toe en deployt het.

Gerelateerde Lectuur

Nog steeds hulp nodig?

Stuur ons een e-mail op support@kapsulehost.com of open een chat in KPanel.

KPanel openen
Ondersteunde Frameworks en Runtimes in Orbit