2014-11-12 18 views
8

Mam aplikację ExtJS 5.0, która wskazuje na API. Na rozwoju, chciałbym użyć http://localhost, ale na produkcji oczywiście jakiś inny serwer.ExtJS (5) Konfiguracje Sencha kompilacji dla różnych środowisk

Czy istnieje sposób na ustawienie zmiennej aplikacji z zewnątrz podczas sencha app build? Lub uzyskać dostęp do pewnej zmiennej ENV w kodzie?

Byłoby wspaniale, gdyby ktokolwiek mógł mi pomóc.

Dziękuję bardzo,

Sebastiana

Odpowiedz

11

Znalazłem sposób to zrobić, ale nie jestem pewien, że to jest najlepszy sposób. W twojej app.json znajdziesz sekcję taką jak ta:

/** 
* override objects for setting build environment specific 
* settings. 
*/ 
"production": { 
    banana : 'no' 
}, 
"testing": { 
    banana : 'yes' 
}, 
"development": { 

}, 

Oczywiście sam dodałem pole bananowe. Nie możemy wdrożyć banana w produkcji, więc ustawiam wartość tak lub nie na podstawie środowiska.

Następnie, podczas kompilacji, czy wykonuję "testowanie aplikacji sencha app", czy "tworzenie produkcji aplikacji sencha", będzie on budował odpowiednią wartość dla środowiska bananowego w obiekcie Ext.manifest.

Więc w aplikacji można uzyskać dostęp do wartości poprzez:

if (Ext.manifest.banana === "yes") 

Przypuszczam, można użyć tej samej techniki, aby zdefiniować pola dla innych owoców, a może nawet nie dane związane owocowych.

Pomysł został zaczerpnięty z tego dokumentu: "Po uruchomieniu aplikacji przetwarzana zawartość pliku app.json zostanie załadowana jako" Zewn. Manifest "." http://docs.sencha.com/cmd/5.x/microloader.html

Tak jak powiedziałem, nie wiem, czy to najlepszy sposób na zrobienie tego, ale podejrzewam, że to możliwe.

+0

Fajnie, zadziałało! Wielkie dzięki za szybką i szczegółową odpowiedź –