有没有办法告诉哪个环境(开发/生产)和Ember.js应用程序正在运行?

时间:2014-10-13 16:05:47

标签: javascript ember.js development-environment production-environment

Ember.js是否有环境概念,例如Rails有(开发/测试/生产)?例如,我可能希望在开发中将一堆数据记录到控制台中,但不是在生产中。有什么办法吗?

为了避免XY问题,我将解释我的实际用例(与提到的用例相反):我想在应用程序投入生产时显示某个警告,但不在开发中显示它。如果应用程序未通过HTTPS运行,则应显示警告。但是,因为开发通常发生在禁用HTTPS的本地计算机上,所以开发人员一直向他/她展示它会非常烦人。所以我想在开发中禁用警告。

3 个答案:

答案 0 :(得分:3)

Ember上没有环境概念,但您可以将该职责委托给您的服务器环境(express,rails,无论您使用的是什么),您可以设置JS变量,cookie,localStorage值,无论您想要什么。

编辑:此外,由于您可能正在测试本地环境,您可以检查URL中的域,例如localhost,0.0.0.0等,

为此您可以使用window.location.host

答案 1 :(得分:0)

只需在页面中传递属性

即可
var isProduction = false; // dynamically populate

App = Ember.Application.create({
  LOG_TRANSITIONS: !isProduction, 
  LOG_TRANSITIONS_INTERNAL: !isProduction,
  log: function(){
    if(isProduction) return;
    console.log.apply(console, arguments);
  }
});

并在任何地方使用App.log

答案 2 :(得分:0)

或者您可以导入环境,例如从' ../ config / environment'中导入ENV; 然后检查一下你所处的环境并做出相应的决定。