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

标签 javascript gruntjs yeoman

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

我想要一种方法让一些应用程序参数取决于我当前的环境(开发与生产)。

现在我正在使用两个单独的配置文件,并且在部署 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'
}

此解决方案有效但有异味并且不允许除生产和开发环境外的任何其他环境。我有哪些选择?

最佳答案

试试这个:

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

然后在您的 URL 后键入 ?DEV=1

关于javascript - 在 javascript 应用程序中处理特定于环境的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669661/

相关文章:

javascript - Bootstrap 3.4 中的容器流体未水平拉伸(stretch) 100%

javascript - 从句子中删除除三个单词之外的所有单词,并使用 jquery 在这三个句子后面添加三个点

javascript - grunt : How to run a function and then a task and then another function, 依次,当函数不能拆分到不同的任务时?

gruntjs - 使用 assemble 转义部分

gruntjs - 使用 Yeoman/Grunt 项目运行 Apache

node.js - `yo angular` 给出错误 : npm ERR! 代码 ENOENT npm ERR! errno 34(是的,我已经清理了缓存并设置了 .npmignore)

javascript - Bootstrap - "Uncaught TypeError: undefined is not a function"

javascript - 使用 CSS 或 JavaScript 在外部单击时如何关闭 CSS 菜单

flask - "Fatal error: spawn EACCES"正在运行 "sass:dist"任务

deployment - 为什么 Yeoman 在没有字形的情况下构建?