2015-05-20 10 views
5

Mi piacerebbe creare una build di un'app CLI Ember per un ambiente di gestione temporanea. Per la messa in scena, vorrei essenzialmente fare esattamente la stessa cosa della produzione (minification, fingerprinting, exclude test, ecc.), Ma voglio raccogliere le variabili di ambiente per lo sviluppo. Per tentare questo, ho cambiato il mio file environment.js per tenere conto di messa in scena:CLI di Ember: Build per la gestione temporanea

if (environment === 'development' || environment === 'staging') { 
    ENV.someApiKey = 'test-api-key'; 
} 

if (environment === 'production') { 
    ENV.someApiKey = 'production-api-key'; 
} 

Quando eseguo ember build --environment=staging, le variabili di ambiente di staging appropriati siano impostati, ma tutti gli altri processi di build che avrebbe corso per la produzione non lo fa. C'è un modo per dire a Ember CLI di costruire per la produzione ma raccogliere le variabili d'ambiente per lo sviluppo?

risposta

1

Ember imposta un flag a seconda che la produzione è il solo specificato in /ember-cli/lib/broccoli/ember-app.js:

var isProduction = this.env === 'production';

e poi utilizza le impostazioni specifiche per la produzione.

Quindi, se si desidera che una build di staging utilizzi un processo per modificare environment.js prima di eseguire ember build, al termine della generazione, ripristinare il file alla normalità. Probabilmente dovremmo rendere questo processo più flessibile in futuro.

+0

Giusto per chiarimenti, vuoi dire avere uno script che va in environment.js e sostituire tutte le istanze di 'sviluppo' in 'produzione' e tutte le istanze di 'produzione' in qualcosa di casuale come 'pippo'. Quindi esegui la build con environment = production e poi lo script ripristina tutto? Sono d'accordo che sarebbe bello se questo fosse integrato nella CLI di Ember, ma la tua soluzione sembra una buona soluzione. –

+0

Avresti uno script che modifica alcune variabili per la build di produzione, non cambierai nient'altro, ad esempio cambieresti ENV.APP.LOG_TRANSITIONS = true; – Nikos

Problemi correlati