2

我有一个 EmberCLI 应用程序,其中 Staging 和 Prod 都位于同一个 S3 存储桶上,并且在 config/environment.js 中的环境变量是相同的。我仍然需要能够为两个“环境”指定不同的设置。

判断哪个应用程序正在运行的可靠方法是检查请求的域,但我无法及时拦截以更新我的设置。

我已经尝试创建一个初始化程序来检查域并相应地更新 ENV 对象,但在页面生命周期中似乎为时已晚,无法产生任何效果;该页面已经呈现,我的插件没有看到它们的正确设置。

对于一个插件,我基本上必须将其所有代码复制到我的项目中,然后编辑 index.js 文件以使用基于我的域的正确键,但这很笨拙。有一个更好的方法吗?我是否正在尝试制作一个不明智的建筑作品?

来自那些更精通 Ember 的任何建议将不胜感激。

4

2 回答 2

0

我要做的一件事是将生产环境重用于登台和生产,但对某些配置使用 shell 环境变量:

// config/environment.js
if (environment === 'production') {
  ENV.something = process.env.SOMETHING;
}

然后构建:

$ SOMETHING="staging-value" ember build --environment=production
于 2016-02-08T04:38:50.610 回答
0

目前没有很好的方法来处理暂存环境(请参阅Stefan Penner 的评论)。

也就是说,我认为ember-cli-deploy如果您在ember-cli-deploy config中添加暂存环境,则可以在 s3 上实现暂存环境。并处理ember-cli-build.js.

于 2016-02-06T07:16:02.000 回答