我正在尝试使 angularjs 应用程序 12 因素符合配置(http://12factor.net/config)。
它应该取决于环境,我不应该在代码中看到单词development
, test
,production
等。
例如,变量可以存储在 bashenv
中。我可以将它们传递给网络服务器。
我已经想到了一个 .erb 模板文件erb config.js.erb > config.js
,但是如果我在应用程序运行时更改了一个变量,我就必须重做这个。
我已经找到这篇文章http://mindthecode.com/how-to-use-environment-variables-in-your-angular-application/
但这是一个很大的谎言,而且 Grunt.js 这样做,真的......无论如何。
我知道 12factor 哲学不是为前端应用程序而制定的,但我的 Angular 应用程序可以部署在许多环境中的许多不同服务器中,并且尝试正确地做事不会伤害任何人:)。
谢谢 !
编辑:
我想使用的配置参数是这样的:
app:
api:
url: "The url of the api server"
port: 8080
cdn:
images: "url of my images caching service"
google:
oauth:
"api_key": "The api key used for that deployment"
#other external frontend services
其他编辑:
这家伙有点回答:http : //bahmutov.calepin.co/inject-valid-constants-into-angular.html 我觉得有点丑陋并且完全与angularjs绑定;但它有效!