在javascript应用程序中处理特定于环境的配置

时间:2013-05-21 12:09:11

标签: javascript gruntjs yeoman

上下文:使用yeoman构建的单页骨干应用程序

我想要一种方法让一些应用程序参数取决于我当前的环境(dev vs production)。

现在我正在使用两个单独的配置文件,在部署grunt:usemin任务时,我将dev one切换到prod one:

// 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'
}

此解决方案有效,但有臭味,不允许除生产和开发之外的任何其他环境。我有什么选择?

2 个答案:

答案 0 :(得分:1)

试试这个:

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

然后在您的网址后输入?DEV=1

答案 1 :(得分:1)

您应该尝试grunt-variablize任务。