Build és csomagolás
Build folyamat
Szekció neve “Build folyamat”Az alkalmazás fejlesztése során két fő build lépés van: a standalone fejlesztői mód és a produkciós build.
Standalone fejlesztői mód
Szekció neve “Standalone fejlesztői mód”bun run devElindít egy Vite dev szervert (http://localhost:5174), amely az index.html → src/main.ts belépési ponton keresztül közvetlenül mountolja az App.svelte-t. A Mock SDK-val együtt használva teljes fejlesztői élményt nyújt böngészőben, hot reload-dal.
Ez a mód nem az IIFE bundle-t futtatja — az alkalmazás itt normál Svelte alkalmazásként fut, nem Web Component-ként.
Produkciós build (ElyOS-be töltéshez)
Szekció neve “Produkciós build (ElyOS-be töltéshez)”bun run buildLefordítja az alkalmazást IIFE formátumba a dist/ mappába. A Vite a src/app.ts belépési pontot használja, amely Web Component-ként exportálja az alkalmazást. Ezt a bundle-t tölti be az ElyOS.
A build eredménye:
dist/└── index.iife.js # IIFE bundle — ezt tölti be az ElyOSStatikus dev szerver (ElyOS-ben való teszteléshez)
Szekció neve “Statikus dev szerver (ElyOS-ben való teszteléshez)”bun run dev:serverElindítja a dev-server.ts Bun HTTP szervert a http://localhost:5174 címen. A szerver a dist/ mappából és a projekt gyökeréből szolgálja ki a fájlokat CORS fejlécekkel — az ElyOS innen fetch-eli a manifest.json-t és az IIFE bundle-t.
menu.json-os alkalmazás build
Szekció neve “menu.json-os alkalmazás build”Ha az alkalmazás menu.json-t tartalmaz (AppLayout mód), a fő komponens mellett az összes oldal-komponenst is le kell buildelni. Erre való a build-all.js script:
bun run build:allEz a script:
- Lebuildeli a fő alkalmazást (
BUILD_MODE=main) - Végigmegy a
src/components/mappán - Minden
.sveltefájlt külön buildel (BUILD_MODE=components)
// build-all.js (részlet)execSync('BUILD_MODE=main vite build', { stdio: 'inherit' });
for (const file of svelteFiles) { execSync(`BUILD_MODE=components COMPONENT_FILE=${file} vite build`, { stdio: 'inherit' });}A vite.config.js-ben a BUILD_MODE env változó határozza meg, hogy éppen melyik entry point-ot kell buildelni.
Csomagolás (.elyospkg)
Szekció neve “Csomagolás (.elyospkg)”A build után az alkalmazást egyetlen .elyospkg fájlba kell csomagolni:
bun run packageEz a projekt gyökerében lévő build-package.js scriptet futtatja, amely:
- Beolvassa a
manifest.json-t azidésversionmezők alapján - Összegyűjti a
dist/,locales/,assets/mappákat és amanifest.json-t - Egy ZIP archívumba tömöríti őket
.elyospkgkiterjesztéssel menti el a projekt gyökerébe
A csomag neve a manifest.json-ban lévő id és version mezőkből áll össze:
{app-id}-{version}.elyospkgPéldául: hello-world-1.0.0.elyospkg
A csomag tartalma
Szekció neve “A csomag tartalma”hello-world-1.0.0.elyospkg (ZIP archívum)├── manifest.json├── dist/│ └── index.iife.js├── locales/│ ├── hu.json│ └── en.json├── assets/│ └── icon.svg├── migrations/ # opcionális — csak ha van migrations/ mappa│ └── 001_init.sql└── server/ # opcionális — csak ha van server/ mappa └── functions.jsA build-package.js automatikusan csak azokat a mappákat/fájlokat csomagolja be, amelyek ténylegesen léteznek — a migrations/ és server/ mappák hiánya nem okoz hibát.
Feltöltés
Szekció neve “Feltöltés”Alkalmazás Manager UI-n keresztül (ajánlott)
Szekció neve “Alkalmazás Manager UI-n keresztül (ajánlott)”- Nyisd meg az ElyOS-t böngészőben
- Kattints a Start menüre → Alkalmazás Manager
- Kattints a “Alkalmazás feltöltése” gombra
- Válaszd ki a
.elyospkgfájlt - Erősítsd meg a telepítést
API-n keresztül
Szekció neve “API-n keresztül”A /api/apps/upload endpoint session cookie alapú autentikációt használ (better-auth) — Bearer token nem támogatott. Ez azt jelenti, hogy az API-t csak bejelentkezett böngészőből, vagy a session cookie-t tartalmazó HTTP kliensből lehet hívni.
Feltöltés curl-lel (a böngészőből kimásolt session cookie-val):
curl -X POST https://your-elyos-instance.com/api/apps/upload \ -H "Cookie: better-auth.session_token=<session_token>" \ -F "file=@hello-world-1.0.0.elyospkg"A session token a böngésző DevTools → Application → Cookies → better-auth.session_token mezőből másolható ki (bejelentkezett állapotban).
Frissítés
Szekció neve “Frissítés”Meglévő alkalmazás frissítésekor növeld a manifest.json-ban a verziószámot, majd töltsd fel az új csomagot. Az ElyOS automatikusan felismeri, hogy frissítésről van szó.
Teljes build workflow
Szekció neve “Teljes build workflow”# 1. Standalone fejlesztés (Vite dev szerver, Mock SDK, hot reload)bun run dev
# 2. ElyOS-ben való tesztelésbun run build # IIFE bundle elkészítésebun run dev:server # statikus szerver indítása (http://localhost:5174)# ElyOS: Alkalmazás Manager → Dev Alkalmazások → Load → http://localhost:5174
# 3. Produkciós csomagolásbun run buildbun run package # .elyospkg fájl létrehozása
# 4. Feltöltés (Alkalmazás Manager UI-n keresztül ajánlott)# Vagy curl-lel, session cookie-val:curl -X POST .../api/apps/upload \ -H "Cookie: better-auth.session_token=<token>" \ -F "file=@my-app-1.0.0.elyospkg"