Обработка конфигурации среды в приложении javascript

Context : одностраничное базовое приложение, созданное с помощью yoman

Я хотел бы, чтобы некоторые параметры приложения зависели от моей текущей среды (dev vs production).

Прямо сейчас я использую два отдельных файла конфигурации, и я переключаю dev на prod при развертывании, которое выполняет задание grunt: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'
}

Это решение работает, но вонючее и не допускает никакой другой среды, кроме производства и разработки. Каковы мои альтернативы?


person MrRuru    schedule 21.05.2013    source источник
comment
Вы можете попробовать предварительно обработать свой HTML-файл и заменить заполнитель   -  person gustavohenke    schedule 22.05.2013
comment
возможный дубликат переменных среды NodeJS в Grunt   -  person Sindre Sorhus    schedule 27.05.2013
comment
Вот один подробный ответ для Йомана: title="как настроить получение переменной среды в приложении yeoman ember"> stackoverflow.com/questions/20742882/   -  person borisrorsvort    schedule 07.01.2014


Ответы (2)


Попробуй это:

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

Затем введите ?DEV=1 после URL-адреса.

person Jonathan    schedule 03.06.2013

Вы должны попробовать задание grunt-variablize.

person Michal Jezierski    schedule 17.08.2014