Задать среду = 'staging' в Ember, развернутом с помощью Capistrano 3
У меня есть промежуточная среда, в которой я хотел бы установить пользовательский набор переменных для развертывания моего приложения Ember.js, и я рисую бланк о том, как это сделать правильно. Я использую самоцвет ember-cli-rails. Согласно документации для этого:
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;
Вещи, которые я пробовал до сих пор:
- настройка
export EMBER_ENV='staging'
в моем профиле пользователя.profile - настройка
set :default_env, { 'EMBER_ENV' => 'staging' }
в моем/config/deploy/staging.rb
файл.
1 ответ
К сожалению, ember cli поддерживает тестирование, разработку и производство только в качестве допустимой среды.
Объект ENV содержит три важных ключа:
- EmberENV можно использовать для определения флагов объектов Ember (см. Руководство "Флаги объектов").
- APP можно использовать для передачи флагов / опций вашему экземпляру приложения.
- Среда содержит имя текущей среды (разработка, производство или тестирование).
Есть несколько неофициальных решений этого, некоторые из них используют ember-cli-deploy
и изменить настройки на основе deployTarget
значение. Другие используют dotenv
управлять настройками каждой среды.
Мы занимаемся этим на данный момент и не смогли найти решение, которое кажется правильным.