Хост окружения на основе среды в приложении Ember CLI
Я пытаюсь настроить адаптер в своем приложении Ember CLI для использования другого хоста на основе среды. В dev я хочу, чтобы это был текущий хост по умолчанию (позволяя мне настроить его с помощью опции --proxy
, но в производстве я знаю, что это будет http://some.url
.
Я попытался импортировать свой ENV
в свой адаптер приложения:
// adapters/application.js
import DS from "ember-data";
import ENV from "../../config/environment";
export default DS.ActiveModelAdapter.extend({
host: ENV.host
});
но я получаю сообщение об ошибке, что tmp/tree_merger../config/environment.js
не существует.
Ответы
Ответ 1
Вы довольно близки. Вы должны идти только на один шаг в дереве каталогов (когда вы находитесь на маршруте, контроллере и т.д. Вам нужно подняться до двух).
// adapters/application.js
import DS from "ember-data";
import ENV from "../config/environment";
export default DS.ActiveModelAdapter.extend({
host: ENV.host
});
Документация здесь.
Обратите внимание, что вы, вероятно, не должны определять собственные переменные непосредственно в ENV. Используйте ENV.APP в config/environment.js
var ENV = {
...
APP: {
// Here you can pass flags/options to your application instance
// when it is created
host: 'some_host'
}
};
И получить доступ к нему таким же образом
import ENV from '../config/environment';
export default DS.ActiveModelAdapter.extend({
host: ENV.APP.host
});
Ответ 2
Это похоже на работу
// adapters/application.js
import DS from "ember-data";
export default DS.ActiveModelAdapter.extend({
host: window.MyAppENV.host
});
хотя я не уверен, что это лучший метод.