Environment-based host in Ember CLI app

断了今生、忘了曾经 提交于 2019-12-05 16:49:10

问题


I'm trying to configure the adapter in my Ember CLI app to use a different host based on the environment. In dev, I want it to be the default current host (letting me customize it via the --proxy option, but in production I know it will be http://some.url.

I tried importing my ENV into my application adapter:

// adapters/application.js
import DS from "ember-data";
import ENV from "../../config/environment";

export default DS.ActiveModelAdapter.extend({
  host: ENV.host
});

but I'm getting an error that tmp/tree_merger../config/environment.js doesn't exist.


回答1:


You are pretty close. You should only going up one step in the directory tree (when you are in a route, controller, etc you need to go up two).

// adapters/application.js
import DS from "ember-data";
import ENV from "../config/environment";

export default DS.ActiveModelAdapter.extend({
  host: ENV.host
});

The documentation is here.

Note you probably shouldn't be defining your own variables directly on ENV. Use ENV.APP in config/environment.js

var ENV = {
  ...
  APP: {
    // Here you can pass flags/options to your application instance
    // when it is created
    host: 'some_host'
  }
};

And access it the same way

import ENV from '../config/environment';

export default DS.ActiveModelAdapter.extend({
  host: ENV.APP.host
});



回答2:


This seems to work

// adapters/application.js
import DS from "ember-data";

export default DS.ActiveModelAdapter.extend({
  host: window.MyAppENV.host
});

though I'm not sure if it's the best method.



来源:https://stackoverflow.com/questions/25248529/environment-based-host-in-ember-cli-app

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!