所以我最终找到了一种效果很好但只有两个 env 的方法:
我为 ember-generator 提出了一个拉取请求,以开始使用该模式:
https://github.com/borisrorsvort/generator-ember/commit/66f26e9e5a7599da53cb99b85e8ef5864648349b
这是一个适用于 yeoman ember 生成器的实现:
您的替换任务应如下所示:
replace: {
app: {
options: {
variables: {
ember: 'bower_components/ember/ember.js',
ember_data: 'bower_components/ember-data-shim/ember-data.prod.js',
app_config: 'scripts/app_config/development.js'
}
},
files: [{
src: '<%= yeoman.app %>/index.html',
dest: '.tmp/index.html'
}]
},
dist: {
options: {
variables: {
ember: 'bower_components/ember/ember.prod.js',
ember_data: 'bower_components/ember-data-shim/ember-data.prod.js',
app_config: 'scripts/app_config/production.js'
}
},
files: [{
src: '<%= yeoman.app %>/index.html',
dest: '.tmp/index.html'
}]
}
}
======
然后在@@ember 和@@ember_data 下添加'@@app_config' index.html 以便它被正确的字符串替换
======
然后创建两个文件:
- app/templates/scripts/app_config/development.js
- app/templates/scripts/app_config/production.js
这些包含您可以在 Ember 应用中使用的 AppConfig 对象
var AppConfig = {};
======
现在假设您想在构建应用程序时更改适配器:
只需使用:
MyApp.ApplicationAdapter = DS.RESTAdapter.extend({
host: AppConfig.apiAdapterUrl
});