typescript - Îmbunătățirea timpului de construire a producției pentru aplicația Angular 8 în Azure Devops
Încerc să cresc viteza de producție a build-ului Angular cu comanda de mai jos. Am rulat următoarea comandă, însă nu a fost nicio îmbunătățire a timpului de build, încă durează 14 minute. Comanda --prod face să fie ignorată limita de memorie maximă pentru spațiul vechi? Este corect scriptul? Rulăm acest lucru în agenții Azure Devops, așa apare în jurnal.
node --max-old-space-size=12288 ./node_modules/@angular/cli/bin/ng build --prod --output-hashing none
Ar trebui mutată comanda pentru max-old-space-size în secțiunea de producție a configurațiilor din angular.json?
Îmbunătățirea timpului de construire pentru producție al aplicației Angular 7
Acesta este fișierul package.json:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "node --max-old-space-size=12288 ./node_modules/@angular/cli/bin/ng build --prod",
"prod": "node --max-old-space-size=12288 ./node_modules/@angular/cli/bin/ng build --prod --output-hashing none",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
Răspuns #1
Hei, conform documentației, poți optimiza build-urile tale cu
Încărcare leneșă. se încarcă doar modulele aplicației care trebuie să fie prezente absolut când aplicația pornește. Configurați Router-ul Angular pentru a amâna încărcarea tuturor celorlalte module (și a codului lor asociat)
Activarea modului --prod în comanda ta de build, ;) desigur. Apoi poți inspecta dimensiunea pachetului folosind o bibliotecă numită source-map-explorer
npm install source-map-explorer --save-dev
Construiește aplicația ta pentru producție, inclusiv hărțile sursă
ng build --prod --source-map
Listează pachetele generate în folderul dist/.
ls dist/*.bundle.js
Rulați exploratorul pentru a genera o reprezentare grafică a unuia dintre pachete. Exemplul următor afișează graficul pentru pachetul principal.
node_modules/.bin/source-map-explorer dist/main.*.bundle.js
Poți obține mai multe informații în documentația Angular aici
Răspunsul #2
Aceasta este durata normală de construire obținută de obicei de agentul de construire în Azure DevOps pentru Angular 7 și 8. Setarea node --max-old-space-size=12288 vă va oferi o alocare de memorie extinsă pentru procesul de construire. Nu reduce timpul de construire. Da, această comandă funcționează în Azure.
Odată cu lansarea Angular 9, au introdus motorul de construire Angular Ivy și acesta a redus considerabil timpul de construire. Am actualizat soluția mea la Angular 9. După aceea, timpul de construire Devops s-a redus cu aproximativ 60%. Așadar, încearcă să actualizezi Angular 8 și apoi la 9. Acest lucru ți-ar oferi un ghid pentru această migrare, ghidul de migrare Angular.
