我在不同的环境中有一个AngularJS网站(dev,prod)。我还有一些不同的配置常量,具体取决于环境(即向API发送请求)。
通过创建动态文件,我已阅读了很多通过Grunt解决此问题的帖子。还有其他“更自制”的做法吗?
更新 在客户端,我在Nginx Web服务器上运行我的AngularJS客户端应用程序。
答案 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
环境变量并且您不需要直接从命令行传递配置。