javascript - Hvordan få min Angular-app til å bruke redigert konfigurasjonsfil etter 'ng build --prod'
Jeg distribuerer en Angular-app ved å bruke ng build --prod. Alt jeg ønsker er å la brukeren som bruker dist-mappen enkelt kunne endre i config.json-filen i asset-mappen slik at han kan sette sine innstillinger, og appen min vil bruke den endrede config.json-filen.
Er det mulig etter at jeg kjører ng build --prod å ha en config.json-fil i bygge-mappen som brukeren kan gå inn i og direkte endre?
Hvis ikke, finnes det en bedre måte å oppnå det på ved å bruke en annen strategi?
Svar #1
Jeg forstår at du ønsker å laste konfigurasjon som ligner på environment.ts-filen. Fordelen med environment.*.ts-filen er at den blir innebygd i produktet under kompileringstid. Så, du vil ikke kunne gjøre endringer under kjøring. For det må du opprette en egen konfigurasjons-JSON-fil som kan lastes så snart appen starter ved å bruke "APP_INITIALIZER".
Jeg tror dette Stackblitz-eksempelet vil hjelpe.
https://stackblitz.com/edit/angular-load-config-on-init
Svar #2
Hvis jeg har forstått det riktig, er det få konfigurasjonsparametere som du ønsker å endre basert på miljø. Det finnes to tilnærminger
Opprett config.json-filen som du beskrev, og den bør hentes ved hjelp av HttpClientModule.
Du kan lage et skript for å holde miljøvariabler. Inne i samme skript kan du bygge Angular-prosjektet ved å bruke en tilpasset webpack-konfigurasjon. Du kan finne en detaljert forklaring på https://www.youtube.com/watch?v=BU5G_i1J5CA
Ansvarsfraskrivelse: Videoen ble laget av meg.