layout | parent | nav_order | title |
---|---|---|---|
default |
Introductie |
2 |
Frontend Build |
De frontend bestaat uit Typescript en SCSS. En wordt met behulp van webpack getranspileerd naar Javascript en CSS.
Als je een build uitvoert worden de gegenereerde bestanden in de map htdocs/dist
geplaatst, hier zijn ze ook bereikbaar vanuit de webbrowser.
Om de frontend build te starten voor ontwikkelen aan de stek gebruik je het volgende commando:
yarn dev
Dit maakt een development build van de stek. In de development build is de gegenereerde Javascript en CSS mooi geformatteerd, dus als je er even in wil kijken is het nog steeds goed te begrijpen.
Om de frontend build te starten voor productie gebruik je het volgende commando:
yarn prod
Dit maakt een productie build van de stek. In de productie build is de gegenereerde Javascript en CSS geminified (variabel namen worden ingekort, spaties en tabs worden verwijderd), dit scheelt in de grootte van bestanden. Daarnaast krijgen de bestanden een hash in hun bestandsnaam zodat er in productie gezegd kan worden dat een bestand nooit zal veranderen, want als een bestand veranderd krijgt deze een nieuwe naam.
Webpack is een hele handige tool voor het builden van frontend dingen. In het bestand webpack.config.js
is gedefineerd hoe de build precies werkt.
De bestanden onder entry
zijn interessant, dit zijn de aanspreekpunten van de Typescript/Scss.
Webpack genereerd veel bestanden. Het manifest.json (htdocs/dist/manifest.json
) bestand wordt aangemaakt om bij te houden welke bestanden er allemaal gemaakt zijn en waar ze te vinden zijn. Met de methodes js_asset
en css_asset
wordt in dit bestand gekeken en worden de juiste bestanden als html terug gegeven.
Er wordt natuurlijk ook voortgebouwd op bestaande Javascript code, bijvoorbeeld in Vue en DataTables. In het bestand package.json
staat een overzicht met alle javascript dependencies. Deze dependencies zijn opgesplitst in twee groupen, dependencies
en devDependencies
. Dependencies zijn dependencies die in de Typescript code gebruikt worden. Dev dependencies worden gebruikt door webpack om de Typescript om te vormen naar Javascript (en de SCSS naar CSS).