2017-09-18 5 views
0

J'ai essayé de chercher dans google ceci mais sans la bonne réponse si je dois faire.ember-cli-build.js | définir les paramètres du brocoli en fonction de environnement 0net

Il est une question simple que j'ai mes 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(); 
    }; 

Et je veux changer la valeur de minifyJS ou minifyCSS selon que je courais Ember dans la production ou dev - comment peut atteindre cette?

Répondre

1

Cette réponse s'applique à Ember 2.x.x et a été écrit à partir de 2.15.

Dans votre ember-cli-build.js vous pouvez faire EmberApp.env() pour obtenir l'environnement. Vous pouvez également faire process.env.EMBER_ENV mais la première option est dans le Ember CLI Docs, donc j'irais avec ça personnellement.

Exemple:

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

Selon EmberCLI docs: Fingerprinting and CDN URLs aussi app.env propriété doit être disponible et le code suivant doit être bien aussi:

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 
    } 
}; 

Note: app.env tient "test" lors de la construction à des fins de test.