I'd like to create a build of an Ember CLI app for a staging environment. For staging, I'd like to essentially do exactly the same thing as production (minification, fingerprinting, exclude tests, etc), but want to pick up the environment variables for development. To attempt this, I changed my environment.js
file to account for staging:
if (environment === 'development' || environment === 'staging') {
ENV.someApiKey = 'test-api-key';
}
if (environment === 'production') {
ENV.someApiKey = 'production-api-key';
}
When I run ember build --environment=staging
, the proper staging environment variables are set, but all of the other build processes that would run for production doesn't. Is there a way to tell Ember CLI to build for production but pick up environment variables for development?
Ember sets a flag depending on whether production ONLY is specified in /ember-cli/lib/broccoli/ember-app.js:
var isProduction = this.env === 'production';
and then it uses the settings specific to production.
So if you want to have a staging build use a process to modify the environment.js before your run ember build then when the build is finished revert the file back to normal. We should probably make this process more flexible in the future.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With