2012-07-30 8 views
5

अगर हम विकास या उत्पादन में हैं, तो मुझे एक अलग कुंजी सेट करने की आवश्यकता है। क्लाइंट-साइड में ऐसा करने का एक अच्छा तरीका क्या है जिसमें कोई अंतर्निहित रनटाइम वातावरण नहीं है?मैं अपने क्लाइंट-साइड कोड में पर्यावरण चर सेट कैसे करूं?

धन्यवाद!

+2

करने के लिए इसी कुंजी का एक सेट तैयार करने के लिए की आवश्यकता होगी आप एक का उपयोग कर माना जाता है निर्माण स्क्रिप्ट? जब आप अपना कोड कम करते हैं, तो आप वैरिएबल वैल्यू को विकास से उत्पादन में भी बदल देते हैं। –

+0

"कोई अंतर्निहित रनटाइम पर्यावरण" द्वारा, क्या आप यह भी मानते हैं कि इसे वेबसाइट पर तैनात एक दुभाषिया खोल में निष्पादित किया जा सकता है? – bchurchill

+0

@ क्रिस्टोफर एलियासन मुझे लगता है कि यह सुझाव के लिए धन्यवाद, यह सबसे अच्छा मार्ग हो सकता है। – fancy

उत्तर

0

क्यों न सिर्फ एक अलग स्क्रिप्ट लोड करें? आप जीईटी पैरामीटर के आधार पर गतिशील रूप से स्क्रिप्ट बना सकते हैं उदा। http://example.org/script.js?development=1, और फिर उस पैरामीटर के आधार पर कोड की सामग्री को सर्वर-साइड भाषा जैसे PHP के साथ बदलें।

आप क्लीनर को देखने के लिए अपने वेब सर्वर पर पुनः लिखने के नियमों का भी उपयोग कर सकते हैं।

-1

अगर मैं सही समझते हैं, इस प्रयास करें:

if (window.location.protocol === 'file:') { 
    // Development environment 
} 
else { 
    // Production environment 
}; 
+0

से कुंजी बंद कर सकते हैं यदि आप स्थानीयहोस्ट पर काम करते हैं तो यह काम नहीं करेगा – borisdiakur

4

एक तरह से ग्राहक पर ग्लोबल नेम स्पेस में सर्वर से एक वातावरण चर इंजेक्षन करने के लिए है।

उदाहरण के लिए

, यदि आप PHP में यह कर गया:

<script> 
    var env = <?php echo $your_env_variable; ?>; // globally accessible variable 
</script> 

अब आप किसी भी जावास्क्रिप्ट फ़ाइलें जो कि स्क्रिप्ट टैग के बाद क्रियान्वित कर रहे हैं से है कि वातावरण चर का उपयोग कर सकते हैं।

नोड में आप एक ही बात करना होगा, लेकिन templating (उदाहरण के जेड के लिए) के साथ:

script(type='text/javascript'). 
    var env = passedInEnvVar 
1

में "आधिकारिक" जिस तरह से पर्यावरण निर्दिष्ट करने के लिए "NODE_ENV" का उपयोग करने के लिए है NodeJS। चूंकि आपने HTML सामग्री की सेवा के लिए उपयोग किए जाने वाले ढांचे का उल्लेख नहीं किया है, इसलिए मैं अपने उत्तर के लिए एक्सप्रेसजे का उपयोग करूंगा।

आप बस अपनी दृश्य टेम्पलेट में ऐसा कर सकते हैं (मैं EJS उपयोग कर रहा हूँ)

var key = '<%= keys[process.env.NODE_ENV] %>' 

आप प्रत्येक परिवेश

var keys = { 
    'development': 'dev-key', 
    'production': 'prod-key' 
} 
संबंधित मुद्दे