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

  1. Opprett config.json-filen som du beskrev, og den bør hentes ved hjelp av HttpClientModule.

  2. 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.

Relaterte artikler