Hacker News

मैंने विंडोज़ मूल विकास को ठीक कर दिया है

मैंने विंडोज़ मूल विकास को ठीक कर दिया है फिक्स्ड का यह व्यापक विश्लेषण इसके मुख्य घटकों और ब्र - मेवेज़ बिजनेस ओएस की विस्तृत जांच प्रदान करता है।

1 मिनट पढ़ा

Mewayz Team

Editorial Team

Hacker News

मैंने विंडोज़ नेटिव डेवलपमेंट को ठीक किया: वास्तव में क्या काम करता है इसका पूरा विवरण

विंडोज़ का मूल विकास वर्षों से टूलचेन विखंडन, निर्भरता नरक और पर्यावरण संबंधी विसंगतियों से ग्रस्त रहा है - लेकिन महीनों के परीक्षण के बाद, मुझे अंततः एक वर्कफ़्लो मिला जो अराजकता को समाप्त करता है। यह मार्गदर्शिका ठीक-ठीक बताती है कि क्या टूटा, मैंने क्या प्रयास किया, और वह सेटअप जो अब मेरे उत्पादन को एक भी WSL वर्कअराउंड के बिना बनाता है।

विंडोज़ नेटिव डेवलपमेंट हमेशा इतना बुरा सपना क्यों रहा है?

ईमानदार उत्तर यह है कि विंडोज़ को कभी भी प्राथमिक नागरिकों के रूप में डेवलपर्स के साथ डिज़ाइन नहीं किया गया था। यूनिक्स-आधारित सिस्टम ने शुरू से ही पैकेज प्रबंधन, शेल स्क्रिप्टिंग और पर्यावरण अलगाव को अपने डीएनए में समाहित कर लिया। विंडोज़ ने दशकों से इन चीजों को बंद कर दिया है, जिससे पावरशेल, सीएमडी, चॉकलेटी, विंगेट, एमएसवीसी रनटाइम संघर्ष और पीएटीएच परिवर्तनीय आपदाओं की एक स्तरित गड़बड़ी पैदा हो गई है जो एक वरिष्ठ इंजीनियर को एक दोपहर के लिए पटरी से उतार सकती है।

लक्षण इस स्थान पर काम करने वाले किसी भी व्यक्ति से परिचित हैं: एक पैकेज एक मशीन पर सही ढंग से स्थापित होता है और दूसरे पर चुपचाप विफल हो जाता है, बिल्ड टूल विभिन्न कंपाइलर संस्करणों का संदर्भ देते हैं, जो इस पर निर्भर करता है कि आपने पिछली बार कौन सा विजुअल स्टूडियो वर्कलोड स्थापित किया था, और Node.js प्रोजेक्ट जो WSL2 में पूरी तरह से चलते हैं, मूल फाइल सिस्टम पर गुप्त ईपीईआरएम त्रुटियां फेंकते हैं। ये किनारे के मामले नहीं हैं - ये अधिकांश विंडोज़ डेवलपर्स के लिए डिफ़ॉल्ट अनुभव हैं।

मेरे सेटअप में वास्तव में कौन से मुख्य तंत्र टूटे हुए थे?

अपने पर्यावरण का व्यवस्थित रूप से ऑडिट करने के बाद, मैंने अपनी लगभग 80% निर्माण विफलताओं और पर्यावरण विसंगतियों के लिए जिम्मेदार तीन मूल कारणों की पहचान की:

परस्पर विरोधी रनटाइम लाइब्रेरीज़: Microsoft Visual C++ पुनर्वितरण योग्य के कई संस्करण स्पष्ट रिज़ॉल्यूशन ऑर्डर के बिना सह-अस्तित्व में हैं, जिससे मूल मॉड्यूल में DLL लुकअप विफलताएँ होती हैं।

पथ प्रदूषण: सत्रह अलग-अलग उपकरणों ने समय के साथ सिस्टम पथ में प्रविष्टियाँ जोड़ दी थीं, जिनमें से कई एक-दूसरे को छायांकित करते थे और पुरानी स्थापना निर्देशिकाओं की ओर इशारा करते थे।

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

निःशुल्क प्रारंभ करें →

प्रोजेक्ट-स्तरीय पर्यावरण अलगाव का अभाव: यूनिक्स वर्कफ़्लोज़ के विपरीत जहां .env फ़ाइलें और शेल निर्देश प्रथम श्रेणी के नागरिक हैं, विंडोज़ के पास तृतीय-पक्ष टूलींग के बिना किसी प्रोजेक्ट में पर्यावरण चर के दायरे के लिए कोई सुसंगत तंत्र नहीं था।

गिट लाइन-एंडिंग संघर्ष: देशी विंडोज टूल्स और क्रॉस-प्लेटफ़ॉर्म लाइब्रेरीज़ के बीच मिश्रित सीआरएलएफ/एलएफ हैंडलिंग के कारण लॉकफ़ाइल्स पर चेकसम विफल हो गए, जिससे प्रतिलिपि प्रस्तुत करने योग्य इंस्टॉल टूट गए।

सिम्लिंक के लिए उन्नत अनुमति आवश्यकताएँ: कई पैकेज प्रबंधक प्रतीकात्मक लिंक पर भरोसा करते हैं, जिसके लिए विंडोज़ पर डेवलपर मोड या व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है - एक सेटिंग जो अधिकांश एंटरप्राइज़ मशीनें नीति द्वारा अक्षम करती हैं।

"समस्या यह नहीं थी कि विंडोज़ मूल विकास नहीं कर सका - समस्या यह थी कि किसी ने जानबूझकर कॉन्फ़िगरेशन के साथ उपकरणों का सही संयोजन इकट्ठा नहीं किया था। एक बार जब आप अपने देव वातावरण को एक उत्पाद के रूप में मानते हैं जिसे आर्किटेक्चर निर्णयों की आवश्यकता होती है, तो सब कुछ बदल जाता है।"

मैंने वास्तव में विंडोज़ नेटिव डेवलपमेंट वर्कफ़्लो को कैसे ठीक किया?

समाधान कोई एक उपकरण या जादुई स्क्रिप्ट नहीं था। यह पर्यावरण को कैसे इकट्ठा किया जाता है, दायरा बढ़ाया जाता है और कैसे बनाए रखा जाता है, इसकी एक जानबूझकर पुनर्रचना थी। आधार बिना उन्नयन के सिम्लिंक निर्माण को अनलॉक करने के लिए ओएस स्तर पर डेवलपर मोड को सक्षम करने से शुरू होता है। वहां से, स्कूप इंस्टॉलरों के तदर्थ मिश्रण को प्रतिस्थापित करता है क्योंकि यह पूरी तरह से उपयोगकर्ता स्थान में संचालित होता है, स्टोर संस्करण नियंत्रण में प्रकट होता है, और शिम प्रबंधन को सफाई से संभालता है।

विशेष रूप से Node.js परियोजनाओं के लिए, संस्करण प्रबंधन के लिए वोल्टा पर स्विच करने से वैश्विक स्तर पर npm को प्रभावित करने वाली EPERM त्रुटियाँ समाप्त हो गईं। वोल्टा शिम लेयर पर बाइनरी कॉल को इंटरसेप्ट करता है और सिस्टम PATH को छुए बिना प्रति प्रोजेक्ट सही रनटाइम संस्करण को हल करता है। पैकेज.जेसन में एक प्रतिबद्ध .वोल्टा कुंजी के साथ संयुक्त, मशीनों में पर्यावरण समता आकांक्षात्मक के बजाय स्वचालित हो जाती है।

अंतिम भाग स्कूप के माध्यम से विंडोज़ में पोर्ट किए गए direnv द्वारा लागू एक प्रोजेक्ट-स्तरीय .env अनुशासन को अपनाना था - यह सुनिश्चित करना कि प्रत्येक प्रोजेक्ट का अपना पर्यावरण संदर्भ होता है जो निर्देशिका प्रविष्टि पर सक्रिय होता है और बाहर निकलने पर साफ़ हो जाता है

Ready to Simplify Your Operations?

Whether you need CRM, invoicing, HR, or all 207 modules — Mewayz has you covered. 138K+ businesses already made the switch.

Get Started Free →

Try Mewayz Free

सीआरएम, इनवॉइसिंग, प्रोजेक्ट्स, एचआर और अधिक के लिए ऑल-इन-वन प्लेटफॉर्म। कोई क्रेडिट कार्ड आवश्यक नहीं।

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

क्या यह उपयोगी पाया गया? इसे शेयर करें।

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

मुफ़्त ट्रायल शुरू करें →

कार्रवाई करने के लिए तैयार हैं?

आज ही अपना मुफ़्त Mewayz ट्रायल शुरू करें

ऑल-इन-वन व्यवसाय प्लेटफॉर्म। क्रेडिट कार्ड की आवश्यकता नहीं।

निःशुल्क प्रारंभ करें →

14-दिन का निःशुल्क ट्रायल · क्रेडिट कार्ड नहीं · कभी भी रद्द करें