不同的值配置常量

时间:2014-05-08 16:44:24

标签: angularjs

我在不同的环境中有一个AngularJS网站(dev,prod)。我还有一些不同的配置常量,具体取决于环境(即向API发送请求)。

通过创建动态文件,我已阅读了很多通过Grunt解决此问题的帖子。还有其他“更自制”的做法吗?

更新 在客户端,我在Nginx Web服务器上运行我的AngularJS客户端应用程序。

2 个答案:

答案 0 :(得分:0)

这是一个黑客攻击,但我的自制方法是使用静态主机条目覆盖我的API的地址。

的/ etc /主机

192.168.1.100    api.mydomain.com

它很脏但是有效。

答案 1 :(得分:0)

您可以让Node.js服务器决定向您的客户端提供哪个配置文件。

var app = express();
app.set('env', process.argv[2] || 'development');
//...

app.get('/libs/config.js', function(req,res){
     var env = app.get('env');
     if(env === 'development') {
        res.sendfile('config/dev-config.js');
     } else if (env === 'production') {
        res.sendfile('config/prod-config.js');
     } else {
        res.send(404);
     }
});

在您的角色客户端中,您可以:

<script src="libs/config.js"></script>

您运行节点的服务器

node app.js development
node app.js production

另外,我认为Express直接支持使用process.env.NODE_ENV配置当前环境,因此很有可能,您所要做的就是在生产Node.js服务器中设置NODE_ENV=production环境变量并且您不需要直接从命令行传递配置。