# 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 ``` yarn docker:start ``` ### 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 ```