पर्यावरण चर का एक बहुत अच्छा तरीका है जिसका मैंने सफलतापूर्वक उपयोग किया है:
A. अलग-अलग कॉन्फिग फाइल रखें :
dev.js //
इसमें केवल विकास के लिए सभी पर्यावरण चर हैं । फ़ाइल में यह है:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
stage.js // इसमें केवल विकास के लिए सभी पर्यावरण चर हैं
..
qa.js // यह केवल qa परीक्षण के लिए सभी पर्यावरण चर है
फ़ाइल में केवल यह है:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
ध्यान दें : मान पर्यावरण के साथ बदल रहे हैं, ज्यादातर, लेकिन चाबियाँ समान हैं।
आप और अधिक हो सकते हैं
z__prod.js // इसमें उत्पादन के लिए सभी पर्यावरण चर / लाइव हैं केवल
नोट: यह फ़ाइल तैनाती के लिए कभी बंडल नहीं है
इन सभी config फाइल को / config / folder में रखें
<projectRoot>/config/dev.js
<projectRoot>/config/qa.js
<projectRoot>/config/z__prod.js
<projectRoot>/setenv.js
<projectRoot>/setenv.bat
<projectRoot>/setenv.sh
नोट : ठेस का नाम दूसरों की तुलना में अलग है, क्योंकि यह सभी द्वारा उपयोग नहीं किया जाएगा।
B. विन्यास फाइल से OS / Lambda / AzureFunction / GoogleCloudFunction वातावरण चर सेट करें
अब आदर्श रूप से, फ़ाइल में इन कॉन्फ़िगर चर, को ओएस पर्यावरण चर (या, LAMBDA फ़ंक्शन चर, या, Azure फ़ंक्शन चर, Google क्लाउड फ़ंक्शंस, आदि) के रूप में जाना चाहिए
इसलिए, हम विंडोज ओएस (या अन्य) में स्वचालन लिखते हैं
मान लें कि हम ' सेटेनव ' बैट फाइल लिखते हैं , जो एक तर्क है कि पर्यावरण जिसे हम सेट करना चाहते हैं
अब " सेटेनव देव " चलाएं
a) यह पास किए गए तर्क चर से इनपुट लेता है (अब के लिए 'देव')
b) संबंधित फ़ाइल पढ़ें ('config \ dev.js')
c) Windows OS (या अन्य) में पर्यावरण चर सेट करता है
उदाहरण के लिए,
Setenv.bat सामग्री हो सकती है:
node setenv.js
Setenv.js सामग्री हो सकती है:
// import "process.env.ENV".js file (dev.js example)
// loop the imported file contents
// set the environment variables in Windows OS (or, Lambda, etc.)
बस इतना ही , अपने वातावरण में उपयोग के लिए तैयार है।
जब आप ' सेटेनव क्यूए ' करते हैं, तो सभी क्यूए पर्यावरण चर qa.js से उपयोग के लिए तैयार होंगे, और एक ही कार्यक्रम द्वारा उपयोग के लिए तैयार होंगे (जो हमेशा process.env.someEnvKey1 के लिए पूछते हैं, लेकिन इसे प्राप्त मूल्य qa एक है)।
उम्मीद है की वो मदद करदे।
fish
इसके बजाय उपयोग कर रहे हैंbash
, तो आपको उपयोग करने की आवश्यकता हैenv USER_ID=239482 my_command
:। उदाहरण के लिए, नोड.जेएसdebug
लाइब्रेरी के लिए पर्यावरण चर सेट करने के लिए :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-env