da en en da en en sv da en en da da da en en sv en fr da da en en en sv fr de de fr fr fr sv en fr en ja fr de fr es nb fr de en en sv de de fr en fr it fr de fr fr fr fr fr fr fr fr en fr fr it fr en fr de fr fr fr fr fr fr de fr fr fr nl fr de fr fr fr fr pt fr fr fr de da en en en en en en en it en en sco en en fr en en en zh en it tr en kn kn ceb en fa en en it en en en it en en en ru ca en af en en en ru ca en vi en en en ru ca en en en en en en es ru fr en kn en de en ca fa kn da en en en da en en en da en en en da da da da de da da da sv da nb nb en da da da da en nl da sv da en
Angular 7: Glem ikke versionsnummeret – NerdGirl
Forbud fører sjældent noget godt med sig
(Last Updated On: 11. november 2019)
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:
npm install replace-in-file --save-dev npm install inquirer  --save-dev
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.
const replace = require('replace-in-file'); const inquirer = require('inquirer'); var buildVersion = ''; //Prompt for version (options) var questions = [{     type: 'input',     name: 'version',     message: "Type te version for this build (e.g. 1.3.7):", }] //Prompt for version (execute) inquirer.prompt(questions).then(   answers => {     let v = answers['version'];    //Validate te answer     if (/^[1-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}/.test(v)) {       buildVersion = v;       registerVersion();     } else {       throw "Please provide a valid version number";    }   } ).catch(err => {   throw err; }); //Function to register version in files function registerVersion() { let optionsObj = {}; //Replacement for version.json (for te backend - skip this if not needed)   optionsObj['version'] = {       files: 'src/assets/version.json',       from: [/"version": "(.*)"/g,/"released": "(.*)"/g],       to: ["\"version\": \""+ buildVersion + "\"","\"released\": \""+(new Date).getTime()+"\""],       allowEmptyPaths: false,   }; //Replacement for environment.prod.ts   optionsObj['optionsProd'] = {       files: 'src/environments/environment.prod.ts',       from: /version: "(.*)"/g,       to: "version: \""+ buildVersion + "\"",       allowEmptyPaths: false,   }; //Replacement for environment.ts     optionsObj['optionsTest'] = {       files: 'src/environments/environment.ts',       from: /version: "(.*)"/g,       to: "version: \""+ buildVersion + "\"",       allowEmptyPaths: false,   }; //Execute te replacement   Object.keys(optionsObj).forEach(opt => {     let file = optionsObj[opt].files;        try {       let changedFiles = 0;       changedFiles = replace.sync(optionsObj[opt]);       if (changedFiles == 0) {           throw "Please make sure that file '" + file + "' has 'version: \"\"'";       }       console.log('Build version ' + buildVersion + ' set in '+file);     } catch (err) {       throw err;     };     });  }
const replace = require('replace-in-file');
const inquirer = require('inquirer');
var buildVersion = '';
//Prompt for version (options)
var questions = [{
message: "Type te version for this build (e.g. 1.3.7):",
//Prompt for version (execute)
let v = answers['version'];
throw "Please provide a valid version number";
//Function to register version in files
let optionsObj = {};
//Replacement for version.json (for te backend - skip this if not needed)
from: [/"version": "(.*)"/g,/"released": "(.*)"/g],
to: ["\"version\": \""+ buildVersion + "\"","\"released\": \""+(new Date).getTime()+"\""],
to: "version: \""+ buildVersion + "\"",
to: "version: \""+ buildVersion + "\"",
let file = optionsObj[opt].files;
let changedFiles = 0;
if (changedFiles == 0) {
throw "Please make sure that file '" + file + "' has 'version: \"\"'";
console.log('Build version ' + buildVersion + ' set in '+file);
} catch (err) {
I package.json under “scripts” indsætter du nu denne linje:
Du har sikkert allerede konfigureret en eller flere jobs til bygning af dit projekt med. F.eks.:
"build-prod": "ng build --prod --configuration=my-config"
"build-prod": "ng build --prod --configuration=my-config"
Du indsætter nu et nyt job, som du navngiver på samme måde, blot med “pre” foran:
"prebuild-prod": "npm run before-build"
"prebuild-prod": "npm run before-build"
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.
Posted in Webudvikling Tagged angular, bygge, kompilere, scripts, version
I gang med Angular 13 på Linux
Brug af grep kommandoen
Installer Asbru Connection Manager på Fedora
Installer DBeaver på Fedora
Node Package Manager (npm)
Linux: Afvikle en kommando som en anden bruger
MariaDB: Slå generel log til midlertidigt
Udskift nouveau driver med NVIDIA på Fedora 33 – og fortryd
Skab overblik over dine DMARC rapporter
Kategorier Vælg kategori Aftensmad Akrylmaling Bagværk Computer Dessert Fotografi Generelt Grød Hakket oksekød Hobby Hvidkål Ikke kategoriseret Internet IT Krop og sind PHP Pizza Politik Samfund Server Tips & Tricks Vegansk Webudvikling
Arkiver Vælg måned august 2022 april 2022 marts 2022 oktober 2021 maj 2021 marts 2021 februar 2021 januar 2021 december 2020 november 2020 oktober 2020 august 2020 juli 2020 juni 2020 marts 2020 januar 2020 december 2019 november 2019 oktober 2019 august 2019 juni 2019 april 2019 februar 2019 december 2018 oktober 2018 september 2018 juli 2018 juni 2018 maj 2018 april 2018 februar 2018 januar 2018 december 2017 oktober 2017 september 2017 august 2017 juli 2017 juni 2017 maj 2017 april 2017 januar 2017 december 2016 november 2016 oktober 2016 september 2016 januar 2016 december 2015 november 2015 oktober 2015 september 2015
Proudly powered by WordPress | Theme: chichi by xtianmark.