सबसे सही तरीकों के आधार पर, बिल्ड टूल चुनें और उन्हें कॉन्फ़िगर करें.
आज web.dev ही tooling.report नाम की एक नई पहल लॉन्च कर रहा है. यह ऐसी वेबसाइट है जो वेब डेवलपर को उन सुविधाओं की खास जानकारी देती है जो चुनिंदा लोकप्रिय बिल्ड टूल में काम करती हैं. हमने इस साइट को इसलिए बनाया है, ताकि आप अपने अगले प्रोजेक्ट के लिए सही बिल्ड टूल चुन सकें. यह तय कर सकें कि एक से दूसरे टूल पर माइग्रेट करना फ़ायदेमंद है या नहीं या अपने टूलिंग कॉन्फ़िगरेशन और कोड बेस में सबसे सही तरीके शामिल करने का तरीका तय करने के लिए. टूल में अलग-अलग फ़ोकस क्षेत्र होते हैं और ज़रूरतों के अलग-अलग सेट को पूरा किया जाता है. इसका मतलब है कि टूल चुनने और उन्हें कॉन्फ़िगर करने में व्यापारियों की ज़रूरत पड़ती है. टूलिंग.रिपोर्ट की मदद से, हमारा मकसद इन ट्रेड-ऑफ़ को समझाना है. साथ ही, किसी दिए गए बिल्ड टूल के साथ सबसे सही तरीक़ों का पालन करने के बारे में जानकारी देना है.
दिलचस्प लग रहा है? एक्सप्लोर करने के लिए Tooling.report पर जाएं या हमने इस साइट को क्यों और कैसे बनाया है, इसके बारे में ज़्यादा जानने के लिए आगे पढ़ें.
टूल बनाने में अक्सर हमारे काम आते हैं
GoogleChromeLabs पर, हमने Squoosh और Proxx जैसे वेब ऐप्लिकेशन बनाए हैं. साथ ही, Chrome Dev Summit 2019 जैसी वेबसाइटें भी बनाई हैं. किसी भी वेब डेवलपमेंट प्रोजेक्ट की तरह, हम आम तौर पर प्रोजेक्ट के इन्फ़्रास्ट्रक्चर पर चर्चा करते हैं. जैसे, होस्टिंग एनवायरमेंट, फ़्रेमवर्क, और हमारे बिल्ड टूल सेटअप के बारे में बात करते हैं. जैसे-जैसे प्रोजेक्ट आगे बढ़ता है, यह इन्फ़्रास्ट्रक्चर अपडेट होता जाता है: हम जिन फ़्रेमवर्क या तकनीकों का इस्तेमाल करते हैं उन्हें शामिल करने के लिए नए प्लगिन जोड़े जाते हैं या कोड लिखने के हमारे तरीके में बदलाव किया जाता है, ताकि हमारे बिल्ड टूल बेहतर ढंग से समझ सकें कि हम क्या हासिल करने की कोशिश कर रहे हैं. इस पूरी प्रक्रिया के दौरान, हमने अक्सर यह पाया है कि हमारे चुने गए टूल कामयाब साबित होते हैं.
हमारी टीम उपयोगकर्ताओं को सबसे अच्छा वेब अनुभव देने पर ध्यान केंद्रित करती है, जिसके नतीजे में अक्सर हमारे फ़्रंटएंड एसेट को इकट्ठा करने और डिलीवर करने के तरीके को बेहतर बनाने में मदद मिलती है. उदाहरण के लिए, अगर किसी मुख्य थ्रेड की स्क्रिप्ट और वेब वर्कर स्क्रिप्ट ने डिपेंडेंसी शेयर की है, तो हम डिपेंडेंसी को हर स्क्रिप्ट के लिए दो बार बंडल करने के बजाय एक बार डाउनलोड करना चाहेंगे. कुछ टूल बेहतरीन टूल में आसानी से काम करते हैं. कुछ टूल में, डिफ़ॉल्ट व्यवहार में बदलाव करने के लिए काफ़ी ज़्यादा कोशिश करने की ज़रूरत होती है, जबकि दूसरों के लिए यह नामुमकिन है.
इस अनुभव ने हमें यह पता लगाने में मदद की कि अलग-अलग बिल्ड टूल क्या कर सकते हैं और क्या नहीं. हमारी उम्मीद थी कि हम सुविधाओं के लिए एक चेकलिस्ट बनाएं, ताकि अगली बार जब हम नया प्रोजेक्ट शुरू करें, तो हम इस बात का आकलन कर सकें कि कौनसा टूल हमारे प्रोजेक्ट के लिए सबसे सही रहेगा.
हमारे काम करने का तरीका
हम एक ही जगह पर, अलग-अलग बिल्ड टूल का आकलन और तुलना कैसे कर सकते हैं? हमने इस समस्या को हल करने के लिए कई टेस्ट केस लिखे.
हमारी टीम ने टेस्ट से जुड़ी ज़रूरी शर्तों के बारे में बात की और उन्हें डिज़ाइन किया. हमारे हिसाब से ये वेब डेवलपमेंट के सबसे सही तरीकों के बारे में बताते हैं. हमने खास तौर पर इस बात पर ध्यान दिया कि उपयोगकर्ताओं को तेज़, रिस्पॉन्सिव, और बेहतर अनुभव कैसे दिया जाए. इसके लिए, हमने डेवलपर अनुभव से जुड़े टेस्ट को जान-बूझकर शामिल नहीं किया, ताकि तुलना न किए जा सकने वाले दो नतीजों से बचा जा सके.
जांच की सूची बन जाने के बाद, हमने हर टूल के लिए एक बिल्ड स्क्रिप्ट लिखी, ताकि यह देखा जा सके कि टूल, टेस्ट सफल होने की शर्तों को पूरा कर सकता है या नहीं. शुरुआत में, हमने वेबपैक v4, रोलअप v2, और पार्सल 2 की जांच करने का फ़ैसला लिया. हमने ब्राउज़रify + Gulp को भी टेस्ट किया है, क्योंकि बड़ी संख्या में प्रोजेक्ट अब भी इस सेटअप का इस्तेमाल कर रहे हैं. टेस्ट में पास होने के लिए, टूल की सिर्फ़ सार्वजनिक रूप से दस्तावेज़ की गई सुविधाओं या टूल के लिए मौजूद प्लगिन का इस्तेमाल किया जा सकता है. टेस्ट के शुरुआती सेट लिखे जाने के बाद, हमने बिल्ड टूल के लेखकों के साथ काम किया, ताकि यह पक्का किया जा सके कि हमने उनके टूल का सही इस्तेमाल किया है और उन्हें सही तरीके से पेश किया है.
हम सिर्फ़ ${tool_name} इस्तेमाल करते हैं. क्या मुझे अब भी ध्यान रखना चाहिए?
कई टीमों में, ऐसे लोग होते हैं जो बिल्ड इंफ़्रास्ट्रक्चर को बनाए रखने में जुटे होते हैं और टीम के दूसरे सदस्य शायद टूल बनाने का कोई विकल्प न चुनें. हमें उम्मीद है कि यह साइट आपके लिए अब भी काम की है. इससे आपको उन टूल के लिए उम्मीदें तय करने में मदद मिलेगी जिन पर आपको भरोसा है. हर टेस्ट के लिए, हमने अतिरिक्त संसाधनों के साथ इस बात की जानकारी भी शामिल की है कि टेस्ट ज़रूरी क्यों है. अगर आपको अपनी पसंद के टूल की मदद से, सबसे सही तरीके अपनाना है, तो हमारे डेटा स्टोर करने की जगह में मौजूद टेस्ट सेटअप में, ऐसा करने के लिए ज़रूरी कॉन्फ़िगरेशन फ़ाइलें मौजूद होती हैं.
क्या मैं साइट में योगदान दे सकता हूं?
अगर आपको लगता है कि किसी ऐसी सुविधा की जांच की जानी चाहिए जो फ़िलहाल उपलब्ध नहीं है, तो चर्चा शुरू करने के लिए, कृपया GitHub की समस्या में उसका अनुरोध करें. हमारा मकसद असली दुनिया में इस्तेमाल के उदाहरणों को शामिल करना है. अगर किसी और टेस्ट से इन नतीजों का बेहतर तरीके से आकलन किया जाता है, तो हम उसका इस्तेमाल कर सकते हैं.
अगर आपको ऐसे टूल के लिए टेस्ट लिखना है जिन्हें हमने शुरुआती सेट में शामिल नहीं किया था, तो आपका स्वागत है! ज़्यादा जानकारी के लिए, कृपया CONTRIBUTING.md देखें.