Poniższy scenariusz: Buduję aplikację AngularJS 2, która pobiera interfejs REST API (który można zbudować za pomocą Elixir, RoR lub cokolwiek innego). W trakcie rozwoju chcę, aby AngularJS zużywał inne API niż w produkcji (może z danymi testowymi, może dlatego, że buduję API w tym samym czasie i działa na moim komputerze).AngularJS 2: Obsługa konfiguracji aplikacji dla różnych środowisk
Dodatkowo inni członkowie mojego zespołu mogą chcieć użyć innego lokalnego adresu API. Oznacza to, że nie powinno to wchodzić w system kontroli wersji.
Na przykład api_base_url
może być http://localhost:4000
dla mnie, http://testapi.local
dla mojego kolegi i http://api.example.com
do produkcji.
Wartość api_base_url
powinna być dostępna w wielu komponentach.
Jakie jest dobre podejście do radzenia sobie z tym?
Ale to by znaczyło, że muszę skopiować i wkleić we właściwej konfiguracji w zależności od środowiska. Myślę, że byłoby bardziej elegancko, gdybym miał plik konfiguracyjny dla każdego środowiska, który jest poza kontrolą wersji i mógłby być indywidualny dla każdego członka zespołu. Kopiowanie i wklejanie przed kompilacją również nie wydaje się świetnym pomysłem, jeśli chcesz mieć automatyczny przepływ i CI. –
Nie byłoby ręcznego kopiowania/wklejania, ale zintegrowane z twoją kompilacją (na przykład z gulp i gulp-html-replace). Zobacz to pytanie: http: // stackoverflow.com/questions/36285064/how-do-i-faktycznie-deploy-an-angle-2-typescript-systemjs-app/36315060 –
Innym podejściem byłoby boostrap aplikacji po załadowaniu pliku konfiguracyjnego. Odpowiednio zaktualizowałem swoją odpowiedź ... –