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

时间:2017-09-18 01:43:57

标签: ember.js ember-cli broccolijs

我尝试在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();
  };

我想改变minifyJS或minifyCSS的值,具体取决于我是在生产中运行ember还是开发 - 如何实现?

2 个答案:

答案 0 :(得分:1)

此答案适用于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();
  };

答案 1 :(得分:1)

根据EmberCLI文档:Fingerprinting and CDN URLsapp.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"