Skript för att bygga WebApps 2, RESTApps och Widgets med Svelte.
Kom igång
Section titled “Kom igång”Läs vår guide om hur man kommer igång med Svelte!
Installation
Section titled “Installation”Skriptet installeras lokalt i appen.
npm install @soleil-se/build-app --save-dev
Skript
Section titled “Skript”Lägg till följande skript i package.json
:
{ "scripts": { "build": "build-app build", "watch": "build-app watch", "start": "build-app start", "deploy": "build-app deploy" }}
build
: Bygger ihop appen utan att ladda upp.watch
: Startar en watcher, när någon av de filer som loggas vid uppstart ändras byggs appen ihop och laddas upp till default miljön eller den miljö som anges i--env
argumentet.start
: Bygger först ihop och laddar upp appen till default miljön eller den miljö som anges i--env
argumentet, därefter startas en watcher.deploy
: Bygger ihop, signerar och laddar upp appen till default miljön eller den miljö som anges i--env
argumentet.
Styling preprocessor
Section titled “Styling preprocessor”Om en preprocessor används för styling (vanligtvis Sass) behöver denna installeras lokalt i appen eller i projektets rotkatalog.
npm install sass --save-dev
Struktur
Section titled “Struktur”Största skillnaden från Sitevisions standardstruktur är att appens konfiguration ligger i egna kataloger.
WebApp
Directoryconfig Konfiguration för appen.
- App.svelte Huvudkomponent för konfigurationen
- config.js Klientkod för konfigurationen
- index.js Serverkod för konfigurationen
Directoryconfig_global Global konfiguration för appen
- App.svelte Huvudkomponent för globala konfigurationen
- config.js Klientkod för globala konfigurationen
- index.js Serverkod för globala konfigurationen
Directorysrc
Directoryclient/ Klientspecifik kod
- …
Directorycommon/ Universell kod
- …
Directorycomponents/ Komponenter
- …
Directoryserver/ Serverspecifik kod
- …
Directoryresource/ Mapp för appens resurser
- …
- App.svelte Huvudkomponent för appen
- index.js Serverkod för appen
- hooks.js Pre render hooks
- main.js Klientkod för appen
- appDataDefaults.json Defaultvärden för konfiguration
- jsconfig.json
- manifest.json
- package.json
- svelte.config.json
RESTApp
Directoryconfig Konfiguration för appen.
- App.svelte Huvudkomponent för konfigurationen
- config.js Klientkod för konfigurationen
- index.js Serverkod för konfigurationen
Directorysrc
Directoryapi/ Kod för appen
- …
Directoryresource/ Appens resurser
- …
- index.js Serverkod för appen
- appDataDefaults.json Defaultvärden för konfiguration
- jsconfig.json
- manifest.json
- package.json
- svelte.config.json
Det går även att använda samma filer som Sitevision för enklare konfigurationer.
Sitevision konfiguration
Directoryconfig Konfiguration för appen
- index.html
- index.js
- config.js
- config.css
Directoryconfig_global Global konfiguration för appen.
- index.html
- index.js
- config.js
- config.css
Directorysrc/
- …
- jsconfig.json
- manifest.json
- package.json
- svelte.config.json
Inställningar
Section titled “Inställningar”Skriptet använder följande inställningar:
Signering
Section titled “Signering”I user_config.json
anger man vilken användare och vilket certifikat som ska användas vid signering av appar.
auth
- En base64-enkodad sträng med formatetusername:password
.certificate
- Namn på certifikatet som ska användas vid signering.
{ "webappSign": { "auth": "dXNlcm5hbWU6cGFzc3dvcmQ=", "certificate": "Soleil" }}
Manifest
Section titled “Manifest”Information om appen, se till att bundled
är satt till true
för att använda WebApps 2.
Läs mer om manifest.json på Sitevisions utvecklarwebb.
{ "id": "se.soleil.myApp", "version": "1.0.0", "name": "Namn på app", "author": "Soleil AB", "description": "Beskrivning av app.", "helpUrl": "", "type": "WebApp", "bundled": true}
Flerspråkiga namn (sedan 1.4.0)
Section titled “Flerspråkiga namn (sedan 1.4.0)”I Sitevision 10.1 introducerades stöd för flerspråkiga namn på appar.
Som standard kommer det svenska namnet (name.sv
i manifest.json
) att användas för själva tillägget i sv:addonRepository
.
Behöver man ändra detta kan man ange ett annat språk under addonNameLang
i project_config.json
.
{ "env": { ... }, "addonNameLang": "en"}
Svelte config
Section titled “Svelte config”I filen svelte.config.js
anger man inställningar för preprocessing och kompilatorn.
Exempel för att ändra inkluderade sökvägar för Sass och slå på inställningen preserveWhitespace
i kompilatorn.
import { sveltePreprocess } from 'svelte-preprocess';
export default { preprocess: sveltePreprocess({ scss: { includePaths: [`${import.meta.dirname}/../../../../client_src/sass`] } }), compilerOptions: { preserveWhitespace: true, },};
Läs mer om kompilatorinställningar.
Argument
Section titled “Argument”--no-eslint
- Stänger av linting av kod.--no-sync
- Stänger av uppladdning till Sitevision.--no-cache
- Stänger av cachning av kod när appen byggs ihop.--force
- Forcerar uppladdning av app.--debug
- Stänger av minifiering för enklare felsökning.--sign
- Signerar alltid appen.--activate
- Aktiverar appen vid uppladdning.--append-watch-path
- Lägger till en sökväg för till watchern, glob mönster är tillåtna, exnpm run start -- --append-watch-path=../common
.
Följande argument är deprekerade och kommer att tas bort i framtida versioner:
--watch
(DEPRECATED) - Startar övervakning av filer och bygger ihop appen vid förändringar.--build
(DEPRECATED) - Bygger alltid appen vid uppstart, även med--watch
.
Det finns möjlighet att sätta upp alias för Rollup för att slippa långa relativa sökvägar.
Alias prefixas med ett #
för att vara lättare att urskilja.
import doSomething from '#api/doSomething';
Alias definieras i project_config.json
.
Utgångspunkten för alias är den katalog där project_config.json
ligger.
{ "rollup": { "server": { "alias": { "#api": "./server/api", } }, "client": { "alias": { "#api": "./client/api", } } }}
Utgångspunkten för alias är den katalog där project_config.json
ligger.
På serversidan finns följande alias uppsatta som standard:
{ '#api': './server_src/api', '#api/webapps': './server_src/webapps/api', '#api/restapps': './server_src/restapps/api', '#components': './server_src/webapps/components',}
På klientsidan finns följande alias uppsatta som standard:
{ '#api': './server_src/api', '#api/webapps': './server_src/webapps/api', '#components': './server_src/webapps/components',}
Det går att definera egna alias i project_config.json
.
{ "rollup": { "server": { "alias": { "#myAlias": "./some/path" } }, "client": { "alias": { "#myOtherAlias": "./some/other/path" } } }}