ember.js 关于Ember中的自定义构建

wvyml7n5  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(175)

我如何扩展我的自定义环境(和构建),例如,从production“登台”?
最终我想做ember build --environment=staging,收获“生产”构建提供的好处和优化,并想提供一些自定义配置。

webghufk

webghufk1#

这样做可能比实际要难,我希望提供一些说明可以让你明白,所以不推荐这样做。第一步是用你想要的任何定制来修改你的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';行,它也需要针对新环境进行更改。

vsnjm48y

vsnjm48y2#

我建议使用ember-cli-deploy,它本质上允许您创建可以具有不同环境变量的部署“目标”,同时为您提供Ember的生产版本中包含的小型文件、指纹等的好处。

相关问题