ember-cli-build.js |根据环境设置西兰花的参数

ember-cli-build.js | set broccoli's params depending on environmnet

我尝试在 google 中进行搜索,但如果我需要的话,没有找到正确的答案。

这是一个简单的问题,我有 ember-cli-build.js

  /*jshint node:true*/
  /* global require, module */
  var EmberApp = require('ember-cli/lib/broccoli/ember-app');

  module.exports = function(defaults) {
    var app = new EmberApp(defaults, {
      storeConfigInMeta: false,
      minifyJS: {
        enabled: false
      },
      minifyCSS: {
        enabled: false
      }
    });

    return app.toTree();
  };

我想根据我是 运行 ember 生产还是开发更改 minifyJS 或 minifyCSS 的值 - 如何实现?

此答案适用于 Ember 2.x.x 并于 2.15 时编写。

在您的 ember-cli-build.js 中,您可以 EmberApp.env() 获取环境。您也可以 process.env.EMBER_ENV 但第一个选项在 Ember CLI Docs 中,所以我个人会选择它。

示例:

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

  module.exports = function(defaults) {
    var enableMin = (EmberApp.env() === 'production');
    var app = new EmberApp(defaults, {
      storeConfigInMeta: false,
      minifyJS: {
        enabled: enableMin
      },
      minifyCSS: {
        enabled: enableMin
      }
    });


    return app.toTree();
  };

根据 EmberCLI 文档:Fingerprinting and CDN URLs app.env 属性 也应该可用,下面的代码也应该没问题:

module.exports = function (defaults) {

  const app = new EmberApp(defaults, {});

  if (app.env === 'development') {
      // do something specific for dev
  } else if (app.env === 'production') {
      // do something specific for prod
   }
};

注意: app.env 在构建用于测试目的时保持 "test"