Wróć do strony głównej
Angular

Angular – multiple environments

Dzisiaj krótki wpis, jak rozbudować liczbę środowisk –multiple environments w naszej aplikacji.

Multiple environments

Tworząc projekt za pomocą narzędzia Angular CLI, zapewne zwróciłeś uwagę, że tworzy się katalog environments w katalogu src:

Source tree enviroments

I pewno nie jest dla Ciebie niczym nowym, że plik environment.prod.ts wskazuje na środowisko produkcyjne aplikacji, a plik environment.ts na środowisko domyślne.

W pliku environment.ts widzimy komentarz, że jak wywołamy ng build z odpowiednią flagą (–env=prod), to zostanie użyty plik environment.prod.ts:

A co jeśli mamy więcej środowisk w naszej aplikacji? Powiedzmy pięć? Wystarczy, że stworzysz kolejne pliki:Source tree enviroments

 

A następnie w pliku .angular-cli.json, dodasz je jako kolejne propercje obiektu environments:

Deklaracja multiple environments

 

Teraz wrzucamy do plików ze środowiskami, to co chcemy zmieniać w zależności od środowiska (np. API),  a następnie sięgamy po nasz domyślny environment np. w którymś z naszych serwisów:

I pozostaje nam się cieszyć, że możemy już wykonywać builda z odpowiednimi flagami:

…a framework Angular, skorzysta ze wskazanej implementacji w ten sposób otrzymujemy multiple environments w naszym projekcie.

Podobny przykład implementacjimultiple environments znajdziecie tutaj.

O autorze

Tomasz Nastały

JavaScript Developer, entuzjasta frameworka Angular oraz TypeScripta. Na co dzień lubię dzielić się wiedzą poprzez prowadzenie zajęć w jednym z trójmiejskich bootcampów i nagrywaniem kursów z Angulara.

Zapisz się do naszego newslettera. Bądź na bieżąco z najnowszymi trendami, poradami, meetupami i stań się częścią społeczności Angulara w Polsce. Rynek pracy docenia członków społeczności.

3 komentarzy

  1. Bartek

    Czytając ten artykuł nasunęło mi się pytanie: gdzie według Ciebie powinniśmy w projekcie konfigurować zmienne (np. adresy api na które wysylamy requesty) – zakładajac że nie chcemy hardcodowac tego w kodzie lub plikach environtment + fajnie by było nie przebudowywać aplikacji kiedy chcemy zmienić konfigurację. Jedyne co przychodzi mi na myśl to dodanie do zasobów statycznych pliku z taką konfiguracją. Pytanie czy to jest bezpieczne rozwiązanie.

  2. Wojciech Pac

    np: tworzymy plik: data.ts….
    import { environment } from ’../environments/environment’;
    export let baseUrl = (
    environment.envName === 'prod’ ? 'https://prodUrl…’ :
    (environment.envName === 'uat’ ? 'https://uatUrl…’ :
    (environment.envName === 'dev’ ? 'https://devUrl :
    'http://localhost:8080′)
    )
    );

    example of environment.prod.ts…
    export const environment = {
    production: true,
    envName: 'prod’
    };

    usage in class:
    import {baseUrl} from „../path to data file”;

    public Url: string = baseUrl ;

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *