如何扩展自定义环境(和构建),例如从production进行“登台”?

最终,我想做ember build --environment=staging,获得“生产”版本+提供的自定义配置所带来的好处和优化。

最佳答案

这比应该做的难,而且不建议这样做,因为我希望提供一些说明可以使之清楚。第一步是使用所需的任何自定义来修改config/environment.js文件。可能看起来像

if (environment === 'staging') {
 //set something
}


但是随后,您必须处理production自动带到表中的其他内容。例如,资产的指纹识别仅在生产中完成,因此您必须修改emebr-cli-build.js以添加一些使stagingproduction的说明。

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';行,该行也需要针对新环境进行更改。

关于javascript - 关于Ember中的自定义版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59272409/

10-10 04:41