如何在Ember中为自定义构建环境指定压缩

时间:2018-06-22 17:47:33

标签: ember.js ember-cli

如何为自定义环境指定压缩,捆绑和在文件名中添加无效哈希?

生产环境将自动压缩和合并文件,并在文件名中添加无效哈希。即每当我使用ember build --environment=production触发if (environment === 'production'){}的{​​{1}}情况时

但是我想为QA环境创建和构建,该环境还压缩文件并向文件名添加无效哈希。即以下代码还应生成以无效哈希命名的压缩文件(输出与config/environment.js相同,但QA变量除外,如URL)

config / environment.js

production

命令

if (environment === `qa`){
    ENV.somevar = 'qa-value'
}

1 个答案:

答案 0 :(得分:3)

这是在您项目的ember-cli-build.js文件中配置的。默认情况下,仅在生产环境中启用指纹识别(app.env === 'production')。可以通过fingerprint.enabled选项进行更改。 ember-cli-uglify适用于JavaScript压缩和minifyCSS选项。根据需要配置以下选项:

'use strict';

const EmberApp = require('ember-cli/lib/broccoli/ember-app');

module.exports = function(defaults) {
  let env = EmberApp.env();
  let isProductionLike = ['production', 'qa'].includes(env);
  let app = new EmberApp({
    'ember-cli-uglify': {
      enabled: isProductionLike
    },
    fingerprint: {
      enabled: isProductionLike
    },
    minifyCSS: {
      enabled: isProductionLike
    },
    sourcemaps: {
      enabled: !isProductionLike
    }
  });

  return app.toTree();
};

ember-cli-uglify选项在ember-cli-uglify 1.x中被命名为minifyJS。该插件已在ember-cli 2.16的默认蓝图中进行了更新。如果您仍在使用ember-cli-uglify@1.x,请相应地更改选项名称。在撰写此答案时,ember-cli文档尚未反映出这一重大变化。引入了here。另外请注意,这里有一个open issue,因此将来可能会再次更改。

asset compilation chapter of ember-cli docs中提供了更多详细信息和选项。