# tibi-starter Starter Kit für SPAs(s) `;)` mit Svelte und TibiCMS inkl. SSR ## Wozu? Via Svelte wird eine SPA (Single-Page-App) programmiert. Dazu wird der Code einmal für den Browser aufgebreitet und außerdem für den Server kompiliert und transpiliert. Der Server-Code wird in einem tibi-server SSR-Hook (server side rendering) eingebunden und generiert dort fertiges HTML anhand der aktuelle Route für SEO und optimierte Ladezeiten. Die Navigation innerhalb der APP im Browser löst dagegen nur API-Aufrufe aus ohne jedesmal einen SSR-Prozess anzustoßen. Um die SSR-Last so gering wie möglich zu halten, wurde ein Caching in der "ssr"-Collection der API implementiert. ## Toolchain ### git nach `git clone ...` ```sh git lfs install git lfs pull ``` ### Abhängigkeiten laden ```sh yarn install ``` ### Entwickeln mit dev-Webserver ```sh yarn start ``` oder mit abweichender API für "/api"-Proxy ```sh API_BASE=https://login.tibicms.de/api/v1_/__NAMESPACE__ yarn start ``` ### Entwickeln mit externem Webserver (z.B. vscode live server) ```sh yarn dev ``` ### Entwickeln auf dem Code-Server mit Docker Compose Stack ```sh make docker-start # oder make docker-up make docker-down # "make help" zeigt alle Kommandos ``` | UI | URL | | --- | --- | | Website | https://tibi-svelte-starter.code.testversion.online/ | | Tibi Admin | https://tibi-svelte-starter-tibiadmin.code.testversion.online/ | | Admin Mongo | https://tibi-svelte-starter-adminmongo.code.testversion.online/ | | Maildev | https://tibi-svelte-starter-maildev.code.testversion.online/ | ### Testen ```sh yarn build:istanbul # instrumentiert Code für coverage-Report yarn cy:docker:run # oder mit Xserver und UI cy:docker:open ``` ### Bauen ```sh # moderne Browser yarn build # alte Browser (IE11) yarn build:legacy # serverseitiges Rendering yarn build:server ```