如何扩展我的自定义环境(和构建(,例如,从production
"暂存"?
最终我想做ember build --environment=staging
,收获"生产"构建提供的好处和优化+想提供一些自定义配置。
这比它可能应该做的更难做到,不建议这样做,因为我希望提供一些说明会清楚。第一步是使用您想要的任何自定义来修改您的config/environment.js
文件。可能看起来像
if (environment === 'staging') {
//set something
}
但是,您必须处理production
自动带来的其他事情。例如,资产的指纹识别仅在生产中完成,因此您必须修改emebr-cli-build.js
以添加一些指令以staging
,例如production
。
module.exports = function(defaults) {
const env = EmberApp.env() || 'development';
const isProductionLikeBuild = ['production', 'staging'].indexOf(env) > -1;
const app = new EmberApp(defaults, {
fingerprint: { enabled: isProductionLikeBuild },
sourcemaps: { enabled: isProductionLikeBuild },
minifyCSS: { enabled: isProductionLikeBuild },
minifyJS: { enabled: isProductionLikeBuild },
tests: env.EMBER_CLI_TEST_COMMAND || !isProductionLikeBuild,
production
可能还有更多的事情,但这些是我知道的。
另一个需要查找的地方是config/targets.js
,您将在其中找到需要针对新环境更改的行const isProduction = process.env.EMBER_ENV === 'production';
。
我建议使用ember-cli-deploy。它本质上允许您创建部署"目标",这些目标可以具有不同的环境变量,以及没有的不同环境变量,同时为您提供 Ember 生产版本中包含的缩小文件、指纹识别等的好处。