I mine projekter viser jeg altid et versionsnummer et sted i app’en, så folk kan tjekke om de har seneste version. Det er derfor ekstremt vigtigt at jeg husker at ændre det versionsnummer hver gang jeg bygger projektet.
Derfor at jeg lavet byggeproceduren således at den automatisk beder om version som det første. Herefter skrives versionsnummeret til environment.*.ts filerne og herfra kan versionen hentes og vises hvor som helst i app’en.
Til det formål skal vi bruge ‘replace-in-file’ og ‘inquirer’. Førstnævnte bruges til at overskrive indhold i filer og sidstnævnte beder om input fra kommandolinien:
Herefter oprettes et script. Jeg har placeret det i projektets rod (samme sted som package.json og angular.json). Jeg har kaldt scriptet prebuild.js
da det skal afvikles som det første i byggeproceduren. Det kommer vi tilbage til.
Her er scriptet:
I package.json under “scripts” indsætter du nu denne linie:
Du har sikkert allerede konfigureret en eller flere jobs til bygning af dit projekt med. F.eks.:
Du indsætter nu et nyt job, som du navngiver på samme måde, blot med “pre” foran:
Dvs når du kører
npm run build-prod
vil npm sørge for at afvikle prebuild-prod
først og i umiddelbar forlængelse heraf build-prod
.
I prebuild-prod
henvises til jobbet before-build
hvor vi har angivet det script der beder om versionsnummer og skriver det til de nødvendige filer.