在使用Capistrano 3部署的Ember中设置environment ='staging'

时间:2016-01-27 20:37:19

标签: ruby-on-rails ember.js ember-cli ember-cli-rails

我有一个临时环境,我想为部署我的Ember.js应用程序设置一组自定义变量,而我正在绘制一个如何正确执行此操作的空白。我正在使用ember-cli-rails gem。根据该文件:

  

EMBER_ENV:如果在环境中设置,则EMBER_ENV的值为   传递给ember进程作为--environment标志的值。

我只是在如何在“环境”上设置它。

/project/frontend/config/environment.js

if (environment === 'test') {
  // Testem prefers this...
  ENV.baseURL = '/';
  ENV.locationType = 'none';

  // keep test console output quieter
  ENV.APP.LOG_ACTIVE_GENERATION = false;
  ENV.APP.LOG_VIEW_LOOKUPS = false;

  ENV.APP.rootElement = '#ember-testing';
}

if (environment === 'staging') {
  ENV.apiHost = '/app-data';
  ENV.contentSecurityPolicy = contentSecurityPolicy;
  ENV.torii = {
    providers: {
      'my-custom-oauth2': {
        apiKey: '1234123412341234123412341234',
        baseUrl: 'http://www.server.com:9108/oauth/authorize'
      }
    }
  };
}

if (environment === 'production') {
  ENV.apiHost = '/app-data';
  ENV.contentSecurityPolicy = contentSecurityPolicy;

到目前为止我尝试过的事情:

  • 在我的部署用户的.profile
  • 中设置export EMBER_ENV='staging'
  • 在我的set :default_env, { 'EMBER_ENV' => 'staging' }文件中设置/config/deploy/staging.rb

1 个答案:

答案 0 :(得分:0)

不幸的是,ember cli仅支持测试,开发和生产作为有效环境

  

ENV对象包含三个重要的键:

     
      
  • EmberENV可用于定义Ember特征标记(请参阅特征   旗帜指南)。
  •   
  • APP可用于将标志/选项传递给您的   应用实例。
  •   
  • 环境包含当前环境的名称(开发,生产或测试)。
  •   

有一些非正式的解决方案,其中一些使用ember-cli-deploy并根据deployTarget值更改设置。其他人使用dotenv来管理每个环境设置。

我们目前正在处理这个问题,但找不到合适的解决方案。