ग्रंट (सॉफ्टवेयर)

ग्रंट एक जावास्क्रिप्ट उपकरण बनाएं  है, एक टूल जिसका उपयोग  लघुकरण (प्रोग्रामिंग),  संकलक ,  इकाई का परीक्षण  और लिंट (सॉफ्टवेयर) जैसे लगातार कार्यों को स्वचालित रूप से करने के लिए किया जाता है। यह फ़ाइल में परिभाषित कस्टम कार्यों को चलाने के लिए कमांड लाइन इंटरफेस का उपयोग करता है (जिसे ग्रंटफ़ाइल के रूप में जाना जाता है)। ग्रंट बेन अल्मन द्वारा बनाया गया था और Node.js में लिखा गया है। इसे एनपीएम (सॉफ्टवेयर) के माध्यम से वितरित किया जाता है। अक्टूबर 2022 तक, ग्रंट इकोसिस्टम में 6,000 से अधिक प्लगइन्स उपलब्ध थे।

ग्रंट का उपयोग करने वाली कंपनियों में एडोब सिस्टम्स, jQuery, ट्विटर, mozilla, बूटस्ट्रैप (फ्रंट-एंड फ्रेमवर्क), धुंधलापन, ओपेरा (वेब ​​ब्राउज़र),  WordPress के ,  वॉल-मार्ट  और माइक्रोसॉफ्ट शामिल हैं।

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

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

फ़ाइलें
किसी प्रोजेक्ट में ग्रंट का उपयोग करने के लिए, रूट निर्देशिका में दो विशिष्ट फ़ाइलें बनाने की आवश्यकता होती है, अर्थात् package.json और एक ग्रंटफ़ाइल।
 * package.json - इसमें नाम, संस्करण, विवरण, लेखक, लाइसेंस और इसकी निर्भरता (प्रोजेक्ट के लिए आवश्यक ग्रंट प्लगइन्स) सहित प्रोजेक्ट के लिए मेटा डेटा  शामिल है। सभी निर्भरताएँ या तो सूचीबद्ध हैं   या   अनुभाग।
 * ग्रंटफ़ाइल - ग्रंटफ़ाइल.जेएस या ग्रंटफ़ाइल.कॉफ़ी नाम की एक वैध जावास्क्रिप्ट या कॉफ़ीस्क्रिप्ट फ़ाइल जिसमें कार्यों को कॉन्फ़िगर करने, मौजूदा प्लगइन्स को लोड करने और/या कस्टम कार्य बनाने के लिए कोड होता है।

कार्य
कार्य (कंप्यूटिंग) वे मॉड्यूल हैं जो एक निर्दिष्ट कार्य करते हैं। उन्हें ग्रन्टफ़ाइल में परिभाषित किया गया है।

डेवलपर्स मौजूदा ग्रंट प्लगइन्स से पूर्वनिर्धारित कार्यों को लोड कर सकते हैं और/या अपनी आवश्यकताओं के आधार पर अपने कार्यों को परिभाषित करने के लिए कस्टम कोड लिख सकते हैं। एक बार परिभाषित होने के बाद, इन कार्यों को केवल निष्पादित करके कमांड लाइन से चलाया जा सकता है. यदि  ग्रंटफ़ाइल में परिभाषित 'default' है तो बस निष्पादित करना   पर्याप्त होगा।

उदाहरण
निम्नलिखित जावास्क्रिप्ट में लिखे गए ग्रंटफ़ाइल का एक उदाहरण है जो दिखाता है कि प्लगइन्स कैसे लोड करें, कस्टम कार्य बनाएं और उन्हें कॉन्फ़िगर करें: उपरोक्त उदाहरण में, निष्पादित करना  कमांड चलेगा   जिसे ऊपर दोनों के संयोजन के रूप में परिभाषित किया गया है   और.

प्लगइन्स
प्लग-इन (कंप्यूटिंग) पुन: प्रयोज्य कोड हैं जो कार्यों के एक सेट को परिभाषित करते हैं। प्रत्येक प्लगइन में आंतरिक रूप से जावास्क्रिप्ट फ़ाइलों के साथ एक कार्य निर्देशिका होती है जिसमें ग्रंटफ़ाइल के समान सिंटैक्स होता है। अधिकांश ग्रंट प्लगइन्स सूचकांक पद के साथ प्रकाशित होते हैं एनपीएम (सॉफ्टवेयर) में और इसके साथ उपसर्ग. यह ग्रंट को ग्रंट की प्लगइन लिस्टिंग में सभी प्लगइन्स दिखाने में मदद करता है। ग्रंट द्वारा आधिकारिक तौर पर समर्थित प्लगइन्स के साथ उपसर्ग किया गया है और प्लगइन्स सूची में एक स्टार प्रतीक के साथ भी चिह्नित हैं। कुछ लोकप्रिय प्लगइन्स में शामिल हैं grunt-contrib-watch, grunt-contrib -क्लीन, grunt-contrib-uglify।

डेवलपर्स इसका उपयोग करके अपने स्वयं के ग्रंट प्लगइन्स भी बना सकते हैं  प्लगइन और उन्हें एनपीएम (सॉफ्टवेयर) का उपयोग करके प्रकाशित करें   आज्ञा।

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

चींटी
चींटी या अपाचे चींटी एक जावा (प्रोग्रामिंग भाषा)-आधारित निर्माण उपकरण है। चींटी के पास सौ से अधिक अंतर्निहित कार्य हैं जो जावा बिल्ड संरचना वाली परियोजनाओं के लिए बेहतर अनुकूल हैं। चींटी में कस्टम कोड लिखने के लिए उपयोगकर्ताओं को एक JAR (फ़ाइल प्रारूप) फ़ाइल लिखने और इसे XML से संदर्भित करने की आवश्यकता होती है। इससे उन परियोजनाओं में अनावश्यक जटिलताएँ बढ़ जाएंगी जिनमें स्वयं जावा की आवश्यकता नहीं है। चींटी बिल्ड कॉन्फ़िगरेशन JSON प्रारूप के बजाय XML में सूचीबद्ध हैं।

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

गल्प
गुलप.जेएस ग्रंट के समान एक जावास्क्रिप्ट आधारित टास्क रनर टूल है क्योंकि दोनों एक मॉड्यूलर डिजाइन | मॉड्यूलर-आधारित आर्किटेक्चर का पालन करते हैं और एनपीएम (सॉफ्टवेयर) पर आधारित हैं। गल्प कार्यों को कॉन्फ़िगरेशन के बजाय कोड द्वारा परिभाषित किया जाता है। गल्प ग्रंट से तेज़ है। ग्रंट आउटपुट को एक कार्य से दूसरे कार्य में स्थानांतरित करने के लिए अस्थायी फ़ाइलों का उपयोग करता है जबकि गल्प फ़ाइलें कार्यों के बीच पाइपलाइन (कंप्यूटिंग) होती हैं।

यह भी देखें
बिल्ड ऑटोमेशन सॉफ़्टवेयर की सूची सूची
 * नोड.जे.एस
 * एनपीएम (सॉफ्टवेयर)
 * स्वचालन बनाएँ
 * अपाचे मावेन
 * रेक (सॉफ्टवेयर)
 * येओमन (कंप्यूटिंग)
 * आधुनिकीकरणकर्ता
 * जावास्क्रिप्ट ढांचा
 * जावास्क्रिप्ट ढाँचा