Env डिफ़

दो .env फ़ाइलें पेस्ट करें — बदले वेरिएबल तुरंत दिखते हैं, कोई बटन नहीं, कोई अपलोड नहीं।

विकल्प

इसका उपयोग कैसे करें

  1. पहली .env «एनवायरनमेंट A» में और दूसरी «एनवायरनमेंट B» में पेस्ट करें — हर जोड़ा, हटाया या बदला वेरिएबल टाइप करते ही दिखता है, कोई बटन नहीं दबाना है।
  2. तुलना कुंजी से होती है, पंक्ति से नहीं: पंक्ति खिसकाना, खाली पंक्ति या कमेंट जोड़ना अंतर नहीं बनाता, सिर्फ़ वेरिएबल का नाम या मान बदलने से बनता है।
  3. «डिफ़ कॉपी करें» से पूरी सूची ले जाएँ: हर पंक्ति +, - या ~ से शुरू होती है, फिर कुंजी, मान और (बदलावों के लिए) पुराना व नया मान — टिकट या ईमेल के लिए तैयार।

उदाहरण

दो फ़ाइलें

【एनवायरनमेंट A】
DB_HOST=localhost
DB_PORT=5432
API_KEY=sk-aaaaaaaaaa
FEATURE_NEW=false

【एनवायरनमेंट B】
DB_HOST=db.prod.example.com
DB_PORT=5432
API_KEY=sk-bbbbbbbbbb
NEW_RELIC_KEY=nr-xyz

अंतर

+ NEW_RELIC_KEY=nr-xyz
~ DB_HOST=localhost -> db.prod.example.com
~ API_KEY=sk-aaaaaaaaaa -> sk-bbbbbbbbbb
- FEATURE_NEW=false
(+1 ~2 −1)

【एनवायरनमेंट A】/【एनवायरनमेंट B】 पंक्तियाँ उदाहरण के शीर्षक हैं; असली उपयोग में दोनों फ़ाइलें दो इनपुट बॉक्स में जाती हैं। सिर्फ़ असली कुंजी/मान बदलाव सूचीबद्ध हैं: DB_PORT दोनों में एक ही है, इसलिए नहीं दिखता, और कुंजी क्रम कभी मायने नहीं रखता।

नियम, सीमाएँ और ज्ञात समस्याएँ

  • यह कुंजी-आधारित डिफ़ है, पंक्ति-आधारित नहीं: दूसरी पंक्ति पर खिसका वेरिएबल, नई खाली पंक्ति या कमेंट अंतर नहीं है। सिर्फ़ बदला वेरिएबल नाम या मान सूचीबद्ध होता है।
  • कुंजी क्रम मायने नहीं रखता — फ़ाइलें कुंजी/मान मैप के रूप में तुलना होती हैं, इसलिए पंक्तियाँ दोबारा क्रम में लगाने से परिणाम कभी नहीं बदलता। कुंजी ठीक-ठीक मिलती है, केस सहित: DB_HOST और db_host अलग कुंजियाँ हैं।
  • कमेंट (पूरी पंक्ति जो # से शुरू हो) और खाली पंक्तियाँ अनदेखी होती हैं। वैकल्पिक «export » प्रीफ़िक्स हट जाता है। मान कोट में हो सकते हैं; डबल-कोट वाले मान \n \r \t \\ और \" समझते हैं, सिंगल-कोट वाले अपनी सामग्री अक्षरशः रखते हैं।
  • मान डिफ़ॉल्ट रूप से ठीक-ठीक तुलना होते हैं — KEY= hello और KEY=hello अलग हैं। आसपास के स्पेस अनदेखे करने हों तो «मान के आसपास का व्हाइटस्पेस ट्रिम करें» चालू करें; कुंजी-समुच्चय की तुलना बिना मान के करनी हो तो «मान अनदेखा करें (सिर्फ़ कुंजियाँ)» चालू करें।
  • डुप्लीकेट कुंजियाँ अंतिम मान रखती हैं, जैसे dotenv करता है, और सूचना बताती है कि कितने डुप्लीकेट मिले। ${OTHER_VAR} जैसे वेरिएबल संदर्भ जैसे लिखे हैं वैसे ही तुलना होते हैं और विस्तारित नहीं करते।
  • सीमाएँ: मिलाकर 2,00,000 कैरेक्टर से ऊपर परिणाम टाइप करना रोकने के लगभग 0.6 s बाद अपडेट होता है; 10,00,000 कैरेक्टर से बड़ी एक फ़ाइल त्रुटि बताई जाती है, कभी काटी नहीं जाती। ज़्यादा से ज़्यादा 400 बदलाव पंक्तियाँ रेंडर होती हैं, पर कॉपी में हमेशा पूरी सूची मिलती है।
  • कोई फ़ाइल अपलोड नहीं, कोई URL लोडिंग नहीं, कोई वेरिएबल विस्तार नहीं, कोई इतिहास नहीं और कोई शेयर लिंक नहीं। सब कुछ आपके ब्राउज़र में चलता है: कुछ अपलोड या संग्रहीत नहीं होता।

दोनों एनवायरनमेंट की तुलना हो जाने के बाद लोग आमतौर पर यह चाहते हैं।