2013-05-21 5 views
7

Kontekst: aplikacja kręgosłup pojedynczej strony budować z YeomanHandling konfigurację środowiska specyficzne w javascript app

Chciałbym sposób mieć pewne parametry aplikacyjne zależą od mojego obecnego środowiska (dev vs produkcji).

Teraz używam dwóch oddzielnych plików konfiguracyjnych, a ja przełączyć dev jeden do jednego prod podczas wdrażania której grunt: zadanie usemin:

// index.html 
<!-- build:js scripts/config.prod.js --> 
<script src="scripts/config.dev.js"></script> 
<!-- endbuild -->  

// config.dev.js 
window.config = { 
    api_host: 'localhost:9393', 
    api_key: 'dev_api_key' 
} 

// config.prod.js 
window.config = { 
    api_host = 'api.host.tld', 
    api_key = 'prod_api_key' 
} 

to rozwiązanie działa, ale jest śmierdzący i nie pozwalają na dowolne inne środowisko niż produkcja i deweloper. Jakie są moje alternatywy?

+1

Można spróbować Preprocesuj plik HTML i zastąpić zastępczy – gustavohenke

+0

możliwy duplikat [NodeJS zmiennych środowiskowych w Grunt] (http://stackoverflow.com/questions/15554215/nodejs-environment-variables-in-grunt) –

+0

Oto jedna szczegółowa odpowiedź dla Yeoman: https://stackoverflow.com/questions/20742882/how-set-get-environment-specific-variable-in-a-yeoman-ember-app/20974746#20974746 – borisrorsvort

Odpowiedz

1

Spróbuj tego:

var DEV = (window.location.indexOf("DEV=1")) != -1 ? true : false; 

Następnie wpisz ?DEV=1 po adresie URL.

+2

To może zrobić, ale ja raczej nie wdrożyłem mojej aplikacji deweloperskiej w produkcji ... – MrRuru