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

MrR*_*uru 7 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'
}
Run Code Online (Sandbox Code Playgroud)

这个解决方案有效,但很臭,不允许任何其他环境,而不是生产和开发.我有什么选择?

Jon*_*han 1

尝试这个:

var DEV = (window.location.indexOf("DEV=1")) != -1 ? true : false;
Run Code Online (Sandbox Code Playgroud)

?DEV=1然后在您的 URL 后面输入。