根据环境(开发、暂存、生产)进行角度配置
Angular config according to environment (dev, staging, production)
我知道这很傻——每次我更改环境时,我都会注释掉并支持我的应用程序的配置工厂。肯定有更好的方法,是吗?
我想检查一下网址,但这似乎是一种糟糕的做法。我想到的另一个选择是在构建过程中使用某种狼吞虎咽的NPM——然而开发没有构建过程。
angular.module('myApp.services')
.factory('GemsConfig', function () {
return {
//apiServer: "http://localhost:3000/v2/",
//apiServer: "https://staging.gems.org/v2/",
apiServer: "https://api.gems.org/v2/",
//giphyServer: "http://api.giphy.com/v1/gifs/",
giphyServer: "https://api.giphy.com/v1/gifs/",
TTL: 5000,
OS: 'web',
version: '1.1',
apiVer: '2.0',
checkBalanceEveryXSeconds: 600,
//giphyKey: 'xxx', // testing
giphyKey: 'xxxx'
};
})
创建两个配置,一个用于生产,另一个用于开发。并创建一个变量,该变量可以具有两个值,即"生产"或"开发"。基于这个变量调用您的配置。这样,您只需要更改变量的名称。
例如。
angular.module('myApp.services')
.factory('GemsConfig', function () {
var currentEnv = "production";
var config = {
development :{
apiServer: "https://api.gems.org/v2/",
giphyServer: "https://api.giphy.com/v1/gifs/",
TTL: 5000,
OS: 'web',
version: '1.1',
apiVer: '2.0',
checkBalanceEveryXSeconds: 600,
giphyKey: 'xxxx'
},
production :{
apiServer: "https://api.gems.org/v2/",
giphyServer: "https://api.giphy.com/v1/gifs/",
TTL: 5000,
OS: 'web',
version: '1.1',
apiVer: '2.0',
checkBalanceEveryXSeconds: 600,
giphyKey: 'xxxx'
}
};
return config[currentEnv];
})
编辑
或者更好的解决方案:创建三个配置1) 公共2) 生产3) 开发
您可以将公共配置参数保留在"common"公共配置中,也可以在"production"或"development"中重写它们。至少您必须合并您的"当前环境"-(生产或开发)配置和"通用"配置。为此,您可以使用angular.extend函数。
例如。
angular.module('myApp.services')
.factory('GemsConfig', function () {
var currentEnv = "production";
var config = {
common:{
TTL: 5000,
OS: 'web',
version: '1.1',
apiVer: '2.0',
checkBalanceEveryXSeconds: 600,
giphyKey: 'xxxxx'
},
development :{
apiServer: "https://api.gems.org/v2/",
giphyServer: "https://api.giphy.com/v1/gifs/",
},
production :{
apiServer: "https://api.gems.org/v2/",
giphyServer: "https://api.giphy.com/v1/gifs/",
TTL:800,
}
};
return angular.extend(config['common'],config[currentEnv]);
});
相关文章:
- 无法在本地计算机中将画布另存为图像
- RequireJS向模块传递配置总是返回undefined
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- 如何配置分析以将数据发送到我自己的服务器
- 扩展jQuery插件以更改配置
- webRTC错误未定义配置
- 如何配置WebStorm以正确格式化生成器函数
- Javascript配置服务器URL并将其存储
- js事件循环是否意味着可以为临时暂存空间使用全局变量
- nodegit获取所有暂存文件的diff
- Javascript 在暂存环境中失败(jQuery 滑块)
- 如果未配置闪存,我该怎么办,那么在自动捕获图像上应该有一些错误消息
- 可以将形状组拖到图层之外,并在 kineticjs 中暂存
- 在暂存服务器中工作但在生产中失败的无效 URL
- 如何使用nodegit重置已暂存和未暂存的更改
- 根据环境(开发、暂存、生产)进行角度配置
- 用于JSON填充视图的暂存区
- 长查询字符串在暂存服务器上运行良好,在生产服务器上返回HTTP406
- 如何在javascript中管理本地/暂存/实时URL
- 有没有一个Chrome应用程序可以像Firefox中的暂存器一样工作