Konfiguration
Skripten använder filerna project_config.json
och user_config.json
för bland annat miljöinställningar.
Närmsta filerna som hittas uppåt i strukturen används.
Skapa konfiguration
Använd @soleil-se/create-build-config för att skapa upp konfigurationsfiler.
npm init @soleil-se/build-config@latest
Miljö
Både project_config.json
och user_config.json
innehåller inställningar för miljö.
Project config
Följande inställningar anges i env
.
default
- Ange vilken miljö som ska användas när man inte skickar med--env
argumentet.key
- Nyckel för objekt med miljöinställningar.name
- Namn på huset i Sitevision.host
- Adress till webbplatsen.production
- Om miljön är en produktionsmiljö eller inte.sign
- Om appar alltid ska signeras vare sig man är i en utvecklings- eller produktionsmiljö.acceptUnauthorizedCert
- Om ogiltliga SSL certifikat ska accepteras vid uppladdning.webdavRoot
- Rotkatalog i filarkivet, standardvärde är “System”.
{ "env": { "default": "development", "development": { "name": "Husets namn", "host": "https://utv.webbplats.se", "acceptUnauthorizedCert": true, "production": false, "sign": false, "webdavRoot": "System", }, "test": { "name": "Husets namn", "host": "https://test.webbplats.se", "production": false }, "production": { "name": "Husets namn", "host": "https://webbplats.se", "production": true, "sign": true } }}
User config
Innehåller autentisering för miljöerna.
key
- Nyckel för objekt med miljöinställningar.auth
- En base64-enkodad sträng med formatetusername:password
.
{ "env": { "development": { "auth": "ZABlAHYAdQBzAGUAcgA6AHAAYQBzAHMA" }, "test": { "auth": "ZABlAHYAdQBzAGUAcgA6AHAAYQBzAHMA" }, "production": { "auth": "cAByAG8AZAB1AHMAZQByADoAcABhAHMAcwA=" } }}
Browserslist
Babel och Autoprefixer använder browserslist för att veta vilka browsers som behöver stödjas.
Enklast är att lägga in inställningarna i package.json
.
Om inget anges används defaults
inställningen, vilken förmodligen kommer transforma allt och man vet inte när dessa inställningarna kan ändras.
Därför behöver oftast en konfiguration anges. Vanligaste kravet är att stödja senaste två versioner av de största webbläsarna och inte IE11.
{ "browserslist": [ "last 2 chrome major versions", "last 2 firefox major versions", "last 2 ios_saf major versions", "last 2 edge major versions", "last 2 safari major versions", "last 2 and_chr major versions" ],}
Eller om man vågar lita på statistik:
{ ... "browserslist": [ "> 0.5% in SE", "not IE 11", "not dead" ],}
Exempelkonfiguration i package.json
om IE11 behöver stödjas:
{ ... "browserslist": "IE 11",}
Globals
För att Rollup ska veta att ett paket finns tillgängligt globalt och vad den globala variabeln heter behöver man ställa in globals i project_config.json
.
Annars kommer en ny instans av paketet importeras i appen eller filen.
{ "env": { ... }, "rollup": { "server": { ... }, "client": { "globals": { "jquery": "$svjq" } } }}
PostCSS
Följande PostCSS plugins används:
postcss-preset-env
(sedan version 2.0.0) är alltid på som standard, går att justera inställningar.
https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env#readme.
autoprefixer
(del av postcss-preset-env
), går att justera inställningar.
https://github.com/postcss/autoprefixer#options.
discard-duplicates
tar automatiskt bort duplicerad CSS.
https://github.com/cssnano/cssnano/tree/master/packages/postcss-discard-duplicates
pxtorem
behöver ställas in innan det används.
https://github.com/cuth/postcss-pxtorem#options.
{ "env": { ... }, "css": { "plugins": { "presetEnv": {}, "autoprefixer": {}, "pxtorem": { "rootValue": 16 } } }}
Flerspråkiga namn på appar
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"}