2015-05-20 8 views
5

के लिए मैं एक स्टेजिंग वातावरण के लिए एक एंबर CLI अनुप्रयोग के निर्माण बनाना चाहते हैं। स्टेजिंग के लिए, मैं अनिवार्य रूप से उत्पादन (कमीशन, फिंगरप्रिंटिंग, परीक्षणों को छोड़कर, आदि) के समान ही करना चाहता हूं, लेकिन विकास के लिए पर्यावरण चर चुनना चाहता हूं। इस प्रयास के लिए, मैं मचान के लिए खाते में करने के लिए अपने environment.js फ़ाइल बदल:एंबर CLI: निर्माण मचान

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

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

जब मैं ember build --environment=staging चलाने के लिए, उचित मचान वातावरण चर सेट कर रहे हैं, लेकिन अन्य निर्माण प्रक्रियाओं है कि उत्पादन के लिए चल पाएंगे के सभी नहीं करता है। क्या उत्पादन के लिए एम्बर सीएलआई को बताने का कोई तरीका है लेकिन विकास के लिए पर्यावरण चर उठाएं?

उत्तर

1

एंबर उत्पादन केवल /ember-cli/lib/broccoli/ember-app.js में निर्दिष्ट किया जाता है कि क्या के आधार पर एक झंडा सेट:

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

और फिर इसे सेटिंग्स उत्पादन के लिए विशिष्ट उपयोग करता है।

तो अगर आप एक मचान निर्माण एक प्रक्रिया का उपयोग तो अपने चलाने एंबर निर्माण से पहले environment.js संशोधित करने के लिए जब निर्माण वापस सामान्य करने के फ़ाइल वापस लाएं समाप्त हो गया है करना चाहते हैं। हमें भविष्य में इस प्रक्रिया को और अधिक लचीला बनाना चाहिए।

+0

बस स्पष्टीकरण के लिए, आप एक स्क्रिप्ट है कि environment.js में चला जाता है है और 'उत्पादन' को 'विकास' के सभी उदाहरणों और कुछ 'foo' की तरह यादृच्छिक करने के लिए 'उत्पादन' के सभी उदाहरणों की जगह मतलब है। फिर पर्यावरण = उत्पादन के साथ निर्माण चलाएं तो क्या स्क्रिप्ट वापस सबकुछ वापस कर देगी? मैं मानता हूं कि यह अच्छा होगा अगर यह एम्बर सीएलआई में बनाया गया था, लेकिन आपका समाधान एक अच्छा कामकाज जैसा लगता है। –

+0

आप एक स्क्रिप्ट है कि उत्पादन का निर्माण करने के लिए कुछ चर में परिवर्तन होता है, आप कुछ और परिवर्तन नहीं करते, जैसे आप ENV.APP.LOG_TRANSITIONS = सच बदल जाएगा; – Nikos

संबंधित मुद्दे