Quando creiamo un'applicazione Angular utilizzando la CLI, viene creata una cartella environments con due file: environment.ts e environment.prod.ts. Questi file contengono variabili di configurazione (url dei servizi, informazioni per il debug o altro ancora) rispettivamente per l'ambiente di sviluppo e per quello di produzione. Se usiamo il comando ng build, viene utilizzato il file environemnt.ts, mentre se usiamo ng build --configuration=production viene usato il file environment.prod.ts.
La scelta del file da usare in fase di build viene regolata dal file angular.json. All'interno di questo file abbiamo la sezione projects/{nomeapplicazione}/architect/build/configurations. All'interno della sezione c'è una chiave "production" che corrisponde al valore passato al parametro di build "configuration". Se non usiamo il parametro "configuration", la build usa i settings di default, se invece passiamo al parametro un valore che non è presente nella sezione, la build va in errore. All'interno di production, troviamo la proprietà fileReplacements così dichiarata.
"configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], .... } }
Questa sezione indica al compilatore Angular che il file environment.ts deve essere sostituito dal file environment.prod.ts.
Seguendo questa logica, possiamo creare più ambienti. Molto spesso non abbiamo solo un ambiente di sviluppo e uno di produzione, ma anche altri ambienti come test, staging, demo o altro ancora ognuno con la propria configurazione. Per creare una build diversa per ambiente dobbiamo seguire tre passi: la creazione del file di configurazione per il nuovo ambiente, la configurazione del nuovo ambiente di build e la possibilità di lanciare il web server in locale con le configurazioni appena create.
Il primo consiste nel creare un nuovo file all'interno della cartella environments assegnando alle variabili di configurazione i valori del nuovo ambiente. Il nome del file sarà environment.staging.ts.
export const environment = { production: false, serviceUrl: 'https://api-staging.myserver.com' };
Il secondo step consiste nel creare all'interno della sezione configurations una nuova proprietà di nome staging all'interno della quale aggiungiamo la sezione fileReplacements per decidere di utilizzare il file environment.staging.ts in fase di produzione.
"configurations": { "production": { ... }, "staging": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.staging.ts" } ] } }
Lanciando il comando ng build --configuration=staging otterremo una build che utilizza il file environment.staging.ts. Tuttavia, questa configurazione non ha effetti sul comando ng serve. Per lanciare il web server locale utilizzando i parametri di staging, dobbiamo andare nella sezione projects/{nomeapplicazione}/architect/serve/configurations e creare una chiave con il nome dell'ambiente (staging) e specificare la proprietà browserTarget con il valore "{nomeapplicazione}:build:{nomeambiente}".
"configurations": { "staging": { "browserTarget": "myapp:build:staging" } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Gestire i dati con Azure Cosmos DB Data Explorer
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Gestire il colore CSS con HWB
Eseguire i worklow di GitHub su runner potenziati
Creare gruppi di client per Event Grid MQTT
Triggerare una pipeline su un altro repository di Azure DevOps
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub