ग्रंट (सॉफ्टवेयर): Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|JavaScript application software}} {{Infobox software | name = Grunt | logo = Grunt.svg | logo caption = | lo...")
 
No edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|JavaScript application software}}
{{Infobox software
{{Infobox software
| name                  = Grunt
| name                  = Grunt
Line 44: Line 43:
}}
}}


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


ग्रंट का उपयोग करने वाली कंपनियों में [[एडोब सिस्टम्स]], [[jQuery]], [[ट्विटर]], [[mozilla]], [[बूटस्ट्रैप (फ्रंट-एंड फ्रेमवर्क)]], [[ धुंधलापन ]], [[ओपेरा (वेब ​​ब्राउज़र)]], [[ WordPress के ]], [[ वॉल-मार्ट ]] और [[माइक्रोसॉफ्ट]] शामिल हैं।<ref name=":1">{{Cite web|url=http://gruntjs.com/|title=Grunt: The JavaScript Task Runner|website=gruntjs.com|access-date=2016-09-14}}</ref>
ग्रंट का उपयोग करने वाली कंपनियों में [[एडोब सिस्टम्स]], [[jQuery|जेक्वेरी]], [[ट्विटर]], [[mozilla|मोज़िला]], [[बूटस्ट्रैप (फ्रंट-एंड फ्रेमवर्क)]], [[ धुंधलापन |क्लाउडेंट]], [[ओपेरा (वेब ​​ब्राउज़र)]], [[ WordPress के | वर्डप्रेस]], [[ वॉल-मार्ट |वॉल-मार्ट]] और [[माइक्रोसॉफ्ट]] सम्मिलित हैं।<ref name=":1">{{Cite web|url=http://gruntjs.com/|title=Grunt: The JavaScript Task Runner|website=gruntjs.com|access-date=2016-09-14}}</ref>




== सिंहावलोकन ==
== सिंहावलोकन ==
ग्रंट को मूल रूप से बेन अल्मन द्वारा 2012 में एक विशाल फ़ाइल में जावास्क्रिप्ट बिल्ड प्रक्रिया कार्यों के एक सूट को लिखने और बनाए रखने को सरल बनाने के एक कुशल विकल्प के रूप में बनाया गया था। इसे जावास्क्रिप्ट परियोजनाओं के लिए कार्य-आधारित कमांड-लाइन इंटरफ़ेस बिल्ड टूल के रूप में डिज़ाइन किया गया था।<ref>{{Cite web|url=https://bocoup.com/weblog/introducing-grunt|title=ग्रंट का परिचय - ओपन सोर्स, प्रदर्शन, उपकरण और वर्कफ़्लो - बोकूप|website=bocoup.com|access-date=2016-09-14}}</ref>
ग्रंट को मूल रूप से बेन अल्मन द्वारा 2012 में एक विशाल फ़ाइल में जावास्क्रिप्ट निर्माण प्रक्रिया कार्यों के एक सूट को लिखने और बनाए रखने, को सरल बनाने के एक कुशल विकल्प के रूप में बनाया गया था। इसे जावास्क्रिप्ट परियोजनाओं के लिए कार्य-आधारित कमांड-लाइन अंतरापृष्ठ निर्माण उपकरण के रूप में डिज़ाइन किया गया था।<ref>{{Cite web|url=https://bocoup.com/weblog/introducing-grunt|title=ग्रंट का परिचय - ओपन सोर्स, प्रदर्शन, उपकरण और वर्कफ़्लो - बोकूप|website=bocoup.com|access-date=2016-09-14}}</ref>
ग्रंट का उपयोग मुख्य रूप से उन कार्यों को स्वचालित करने के लिए किया जाता है जिन्हें नियमित रूप से करने की आवश्यकता होती है। ऐसे हजारों प्लगइन्स हैं जिन्हें इंस्टॉल किया जा सकता है और कुछ सामान्य रूप से उपयोग किए जाने वाले कार्यों को पूरा करने के लिए सीधे उपयोग किया जा सकता है। ग्रंट की सबसे वांछनीय विशेषताओं में से एक यह है कि यह अत्यधिक अनुकूलन योग्य है - यानी, यह डेवलपर्स को उनकी व्यक्तिगत आवश्यकताओं को पूरा करने के लिए कस्टम कार्यों को जोड़ने, विस्तार और संशोधित करने की अनुमति देता है; प्रत्येक कार्य में कॉन्फ़िगरेशन विकल्पों का एक सेट होता है जिसे उपयोगकर्ता सेट कर सकता है। इसके अलावा, ग्रंट कस्टम कार्यों को परिभाषित करने की क्षमता प्रदान करता है, जो कई मौजूदा कार्यों को एक ही कार्य में जोड़ सकता है या पूरी तरह से नई कार्यक्षमता जोड़ सकता है।<ref name=":2">{{Cite book|title=ग्रंट.जेएस के लिए|last=Cryer|first=James|publisher=Apress|year=2015|isbn=978-1-4842-0013-1|pages=1}}</ref>
 


ग्रंट का उपयोग मुख्य रूप से उन कार्यों को स्वचालित करने के लिए किया जाता है जिन्हें नियमित रूप से करने की आवश्यकता होती है। ऐसे हजारों प्लगइन्स हैं जिन्हें स्थापित किया जा सकता है और कुछ सामान्य रूप से उपयोग किए जाने वाले कार्यों को पूरा करने के लिए सीधे उपयोग किया जा सकता है। ग्रंट की सबसे वांछनीय विशेषताओं में से एक यह है कि यह अत्यधिक अनुकूलन योग्य है - यानी, यह विकासकर्ता को उनकी व्यक्तिगत आवश्यकताओं को पूरा करने के लिए अनुकूलित कार्यों को जोड़ने, विस्तार और संशोधित करने की अनुमति देता है; प्रत्येक कार्य में समाकृतिकता विकल्पों का एक समुच्चय होता है जिसे उपयोगकर्ता सेट कर सकता है। इसके अलावा, ग्रंट अनुकूलित कार्यों को परिभाषित करने की क्षमता प्रदान करता है, जो कई उपस्थित कार्यों को एक ही कार्य में जोड़ सकता है या पूरी तरह से नई कार्यक्षमता जोड़ सकता है।<ref name=":2">{{Cite book|title=ग्रंट.जेएस के लिए|last=Cryer|first=James|publisher=Apress|year=2015|isbn=978-1-4842-0013-1|pages=1}}</ref>
== बुनियादी अवधारणाएँ ==
== बुनियादी अवधारणाएँ ==


=== कमांड-लाइन इंटरफ़ेस ===
=== कमांड-लाइन अंतरापृष्ठ ===
ग्रंट का कमांड-लाइन इंटरफ़ेस (सीएलआई) एनपीएम (सॉफ्टवेयर) के माध्यम से विश्व स्तर पर स्थापित किया जा सकता है। क्रियान्वित करना <code>grunt</code> कमांड वर्तमान निर्देशिका में स्थानीय रूप से स्थापित ग्रंट के संस्करण को लोड और चलाएगा। इसलिए, हम अलग-अलग फ़ोल्डरों में ग्रंट के विभिन्न संस्करणों को बनाए रख सकते हैं और प्रत्येक को अपनी इच्छानुसार निष्पादित कर सकते हैं।<ref name=":1" />
ग्रंट का कमांड-लाइन अंतरापृष्ठ (सीएलआई) एनपीएम (सॉफ्टवेयर) के माध्यम से विश्व स्तर पर स्थापित किया जा सकता है। <code>grunt</code> कमांड को निष्पादित करने से वर्तमान निर्देशिका में स्थानीय रूप से स्थापित ग्रंट का संस्करण लोड होगा और चलेगा। इसलिए, हम अलग-अलग फ़ोल्डरों में ग्रंट के विभिन्न संस्करणों को बनाए रख सकते हैं और प्रत्येक को अपनी इच्छानुसार निष्पादित कर सकते हैं।<ref name=":1" />
 
 
=== फ़ाइलें ===
=== फ़ाइलें ===
किसी प्रोजेक्ट में ग्रंट का उपयोग करने के लिए, रूट निर्देशिका में दो विशिष्ट फ़ाइलें बनाने की आवश्यकता होती है, अर्थात् package.json और एक ग्रंटफ़ाइल।
किसी प्रोजेक्ट में ग्रंट का उपयोग करने के लिए, रूट निर्देशिका में दो विशिष्ट फ़ाइलें बनाने की आवश्यकता होती है, अर्थात् package.json और एक ग्रंटफ़ाइल।
* package.json - इसमें नाम, संस्करण, विवरण, लेखक, लाइसेंस और इसकी निर्भरता (प्रोजेक्ट के लिए आवश्यक ग्रंट प्लगइन्स) सहित प्रोजेक्ट के लिए [[ मेटा डेटा ]] शामिल है। सभी निर्भरताएँ या तो सूचीबद्ध हैं <code>dependencies</code> या <code>devDependencies</code> अनुभाग।
* package.json - इसमें नाम, संस्करण, विवरण, लेखक, लाइसेंस और इसकी निर्भरता (प्रोजेक्ट के लिए आवश्यक ग्रंट प्लगइन्स) सहित प्रोजेक्ट के लिए [[ मेटा डेटा |मेटा डेटा]] सम्मिलित है। सभी निर्भरताएँ या तो <code>dependencies</code> या <code>devDependencies</code> अनुभाग में सूचीबद्ध हैं।
* ग्रंटफ़ाइल - ग्रंटफ़ाइल.जेएस या ग्रंटफ़ाइल.कॉफ़ी नाम की एक वैध जावास्क्रिप्ट या [[कॉफ़ीस्क्रिप्ट]] फ़ाइल जिसमें कार्यों को कॉन्फ़िगर करने, मौजूदा प्लगइन्स को लोड करने और/या कस्टम कार्य बनाने के लिए कोड होता है।
* ग्रंटफ़ाइल - एक वैध जावास्क्रिप्ट या [[कॉफ़ीस्क्रिप्ट]] फ़ाइल जिसका नाम "ग्रंटफ़ाइल.जेएस" या "ग्रंटफ़ाइल.कॉफ़ी" है जिसमें कार्यों को कॉन्फ़िगर करने, उपस्थित प्लगइन्स को लोड करने और/या अनुकूलित कार्य बनाने के लिए कोड सम्मिलित है।


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


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


== उदाहरण ==
== उदाहरण ==
निम्नलिखित जावास्क्रिप्ट में लिखे गए ग्रंटफ़ाइल का एक उदाहरण है जो दिखाता है कि प्लगइन्स कैसे लोड करें, कस्टम कार्य बनाएं और उन्हें कॉन्फ़िगर करें:
निम्नलिखित जावास्क्रिप्ट में लिखे गए ग्रंटफ़ाइल का एक उदाहरण है जो दिखाता है कि प्लगइन्स कैसे लोड करें, अनुकूलित कार्य बनाएं और उन्हें समनुरूप करें:
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
module.exports = function(grunt) {
module.exports = function(grunt) {
Line 97: Line 93:
};
};
</syntaxhighlight>
</syntaxhighlight>
उपरोक्त उदाहरण में, निष्पादित करना <code>grunt</code> कमांड चलेगा <code><customtaskName2></code> जिसे ऊपर दोनों के संयोजन के रूप में परिभाषित किया गया है <code><taskName1></code> और <code><customTaskName1></code>.
उपरोक्त उदाहरण में, <code>grunt</code> कमांड निष्पादित करने से <code><customtaskName2></code> चलेगा जिसे ऊपर <code><taskName1></code> और <code><customTaskName1></code> दोनों के संयोजन के रूप में परिभाषित किया गया है।


== प्लगइन्स ==
== प्लगइन्स ==
[[प्लग-इन (कंप्यूटिंग)]] पुन: प्रयोज्य कोड हैं जो कार्यों के एक सेट को परिभाषित करते हैं। प्रत्येक प्लगइन में आंतरिक रूप से जावास्क्रिप्ट फ़ाइलों के साथ एक कार्य निर्देशिका होती है जिसमें ग्रंटफ़ाइल के समान सिंटैक्स होता है। अधिकांश ग्रंट प्लगइन्स [[सूचकांक पद]] के साथ प्रकाशित होते हैं <code>gruntplugin</code><ref name=":0">{{Cite book|title=Getting Started with Grunt: The JavaScript Task Runner|last=Pillora|first=Jaime|publisher=Packt Publishing Ltd|year=2014|isbn=978-1-78398-062-8|location=Livery Place 35 Livery Street Birmingham B3 2PB, UK.}}</ref> एनपीएम (सॉफ्टवेयर) में और इसके साथ उपसर्ग <code>grunt</code>. यह ग्रंट को ग्रंट की [http://gruntjs.com/plugins प्लगइन लिस्टिंग] में सभी प्लगइन्स दिखाने में मदद करता है। ग्रंट द्वारा आधिकारिक तौर पर समर्थित प्लगइन्स के साथ उपसर्ग किया गया है <code>grunt-contrib</code><ref name=":0" />और प्लगइन्स सूची में एक स्टार प्रतीक के साथ भी चिह्नित हैं। कुछ लोकप्रिय प्लगइन्स में शामिल हैं [https://www.npmjs.com/package/grunt-contrib-watch grunt-contrib-watch], [https://www.npmjs.com/package/grunt-contrib-clean grunt-contrib -क्लीन], [https://www.npmjs.com/package/grunt-contrib-uglify grunt-contrib-uglify]
[[प्लग-इन (कंप्यूटिंग)]] पुन: प्रयोज्य कोड हैं जो कार्यों के समुच्चय को परिभाषित करते हैं। प्रत्येक प्लगइन में आंतरिक रूप से जावास्क्रिप्ट फ़ाइलों के साथ एक कार्य निर्देशिका होती है जिसमें ग्रंटफ़ाइल के समान रचनाक्रम होता है। अधिकांश ग्रंट प्लगइन्स को एनपीएम में [[सूचकांक पद]] <code>gruntplugin</code><ref name=":0">{{Cite book|title=Getting Started with Grunt: The JavaScript Task Runner|last=Pillora|first=Jaime|publisher=Packt Publishing Ltd|year=2014|isbn=978-1-78398-062-8|location=Livery Place 35 Livery Street Birmingham B3 2PB, UK.}}</ref> के साथ प्रकाशित किया जाता है और <code>grunt</code> के साथ उपसर्ग जोड़ा जाता है। यह ग्रंट को ग्रंट की [http://gruntjs.com/plugins प्लगइन सूची] में सभी प्लगइन्स दिखाने में मदद करता है। ग्रंट द्वारा आधिकारिक तौर पर समर्थित प्लगइन्स के साथ <code>grunt-contrib</code><ref name=":0" /> उपसर्ग लगाया गया है और प्लगइन्स सूची में एक स्टार प्रतीक के साथ भी चिह्नित किया गया है। कुछ लोकप्रिय प्लगइन्स में [https://www.npmjs.com/package/grunt-contrib-watch ग्रंट-कॉन्ट्रिब-वॉच], [https://www.npmjs.com/package/grunt-contrib-clean ग्रंट-कॉन्ट्रिब-क्लीन], [https://www.npmjs.com/package/grunt-contrib-uglify ग्रंट-कॉन्ट्रिब-uglify]     सम्मिलित हैं।


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


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


== तुलना ==
== तुलना ==


=== चींटी ===
=== एंट ===
चींटी या [[अपाचे चींटी]] एक [[जावा (प्रोग्रामिंग भाषा)]]-आधारित निर्माण उपकरण है। चींटी के पास सौ से अधिक अंतर्निहित कार्य हैं जो जावा बिल्ड संरचना वाली परियोजनाओं के लिए बेहतर अनुकूल हैं। चींटी में कस्टम कोड लिखने के लिए उपयोगकर्ताओं को एक JAR (फ़ाइल प्रारूप) फ़ाइल लिखने और इसे [[XML]] से संदर्भित करने की आवश्यकता होती है। इससे उन परियोजनाओं में अनावश्यक जटिलताएँ बढ़ जाएंगी जिनमें स्वयं जावा की आवश्यकता नहीं है। चींटी बिल्ड कॉन्फ़िगरेशन [[JSON]] प्रारूप के बजाय XML में सूचीबद्ध हैं।<ref name=":2" />
एंट या [[अपाचे चींटी|अपाचे एंट]] एक [[जावा (प्रोग्रामिंग भाषा)]]- आधारित निर्माण उपकरण है। एंट के पास सौ से अधिक अंतर्निहित कार्य हैं जो जावा विकसित संरचना वाली परियोजनाओं के लिए बेहतर अनुकूल हैं। एंट में अनुकूलित कोड लिखने के लिए उपयोगकर्ताओं को JAR (फ़ाइल प्रारूप) फ़ाइल लिखने और इसे [[XML]] से संदर्भित करने की आवश्यकता होती है। इससे उन परियोजनाओं में अनावश्यक जटिलताएँ बढ़ जाएंगी जिनमें स्वयं जावा की आवश्यकता नहीं है। एंट विकसित समाकृतिकता [[JSON]] प्रारूप के बजाय XML में सूचीबद्ध हैं।<ref name=":2" />
 
 
=== रेक ===
=== रेक ===
[[रेक (सॉफ्टवेयर)]] डेवलपर्स को [[रूबी (प्रोग्रामिंग भाषा)]] में कार्यों को परिभाषित करने की अनुमति देता है। रेक में प्लगइन्स या पूर्वनिर्धारित कार्यों की अवधारणा नहीं है जिसका अर्थ है कि सभी आवश्यक क्रियाएं लिखी जानी चाहिए और फिर निष्पादित की जानी चाहिए। यह ग्रंट की तुलना में विकास को महंगा बनाता है जिसमें पुन: प्रयोज्य प्लगइन्स का एक बड़ा सेट है।<ref name=":2" />
[[रेक (सॉफ्टवेयर)]] विकासकर्ता को [[रूबी (प्रोग्रामिंग भाषा)]] में कार्यों को परिभाषित करने की अनुमति देता है। रेक में प्लगइन्स या पूर्वनिर्धारित कार्यों की अवधारणा नहीं है जिसका अर्थ है कि सभी आवश्यक क्रियाएं लिखी जानी चाहिए और फिर निष्पादित की जानी चाहिए। यह ग्रंट की तुलना में विकास को महंगा बनाता है जिसमें पुन: प्रयोज्य प्लगइन्स का एक बड़ा समुच्चय है।<ref name=":2" />
 
 
=== गल्प ===
=== गल्प ===
गुलप.जेएस ग्रंट के समान एक जावास्क्रिप्ट आधारित टास्क रनर टूल है क्योंकि दोनों एक [[मॉड्यूलर डिजाइन]] | मॉड्यूलर-आधारित आर्किटेक्चर का पालन करते हैं और एनपीएम (सॉफ्टवेयर) पर आधारित हैं। गल्प कार्यों को कॉन्फ़िगरेशन के बजाय कोड द्वारा परिभाषित किया जाता है। गल्प ग्रंट से तेज़ है। ग्रंट आउटपुट को एक कार्य से दूसरे कार्य में स्थानांतरित करने के लिए अस्थायी फ़ाइलों का उपयोग करता है जबकि गल्प फ़ाइलें कार्यों के बीच [[पाइपलाइन (कंप्यूटिंग)]] होती हैं।<ref name=":2" />
गुलप.जेएस ग्रंट के समान जावास्क्रिप्ट आधारित कार्य धावक उपकरण है क्योंकि दोनों [[मॉड्यूलर डिजाइन|प्रतिरूपक]]-आधारित वास्तुकला का पालन करते हैं और एनपीएम (सॉफ्टवेयर) पर आधारित हैं। गल्प कार्यों को समाकृतिकता के बजाय कोड द्वारा परिभाषित किया जाता है। गल्प ग्रंट से तेज़ है। ग्रंट आउटपुट को एक कार्य से दूसरे कार्य में स्थानांतरित करने के लिए अस्थायी फ़ाइलों का उपयोग करता है जबकि गल्प फ़ाइलें कार्यों के बीच [[पाइपलाइन (कंप्यूटिंग)]] होती हैं।<ref name=":2" />
 
 
==यह भी देखें==
==यह भी देखें==
{{Portal|Free and open-source software}}
{{Portal|Free and open-source software}}
Line 131: Line 121:
* एनपीएम (सॉफ्टवेयर)
* एनपीएम (सॉफ्टवेयर)
* [[स्वचालन बनाएँ]]
* [[स्वचालन बनाएँ]]
[[बिल्ड ऑटोमेशन सॉफ़्टवेयर की सूची]] सूची
[[बिल्ड ऑटोमेशन सॉफ़्टवेयर की सूची|विकसित ऑटोमेशन सॉफ़्टवेयर की सूची]] सूची
* [[अपाचे मावेन]]
* [[अपाचे मावेन]]
* रेक (सॉफ्टवेयर)
* रेक (सॉफ्टवेयर)
Line 151: Line 141:
* {{Official website|https://gruntjs.com}}
* {{Official website|https://gruntjs.com}}
* {{Github|gruntjs/grunt|Grunt}}
* {{Github|gruntjs/grunt|Grunt}}
[[Category: स्वचालन सॉफ्टवेयर]] [[Category: जावास्क्रिप्ट प्रोग्रामिंग उपकरण]]


[[Category: Machine Translated Page]]
[[Category:CS1 maint]]
[[Category:Created On 26/06/2023]]
[[Category:Created On 26/06/2023]]
[[Category:Machine Translated Page]]
[[Category:Official website not in Wikidata]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Portal templates with redlinked portals]]
[[Category:Templates Vigyan Ready]]
[[Category:जावास्क्रिप्ट प्रोग्रामिंग उपकरण]]
[[Category:स्वचालन सॉफ्टवेयर]]

Latest revision as of 18:14, 12 July 2023

Grunt
Original author(s)Ben Alman
Developer(s)Ben Alman, Tyler Kellen, Kyle Robinson Young, Vlad Filippov, Sindre Sorhus, Isaac Durazo, Jarrod Overson, Tim Branyen, Jörn Zaefferer, James Smith, Dave Geddes
Initial release4 April 2016; 8 years ago (2016-04-04)[1]
Stable release
1.4.1 / 22 April 2021; 3 years ago (2021-04-22)[2]
Repositorygithub.com/gruntjs/grunt
Written inJavaScript
Operating systemLinux, macOS, Windows
PlatformNode.js
Available inEnglish
TypeTask Runner, Build tool
LicenseMIT License[3][4]
Websitegruntjs.com

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

ग्रंट का उपयोग करने वाली कंपनियों में एडोब सिस्टम्स, जेक्वेरी, ट्विटर, मोज़िला, बूटस्ट्रैप (फ्रंट-एंड फ्रेमवर्क), क्लाउडेंट, ओपेरा (वेब ​​ब्राउज़र), वर्डप्रेस, वॉल-मार्ट और माइक्रोसॉफ्ट सम्मिलित हैं।[5]


सिंहावलोकन

ग्रंट को मूल रूप से बेन अल्मन द्वारा 2012 में एक विशाल फ़ाइल में जावास्क्रिप्ट निर्माण प्रक्रिया कार्यों के एक सूट को लिखने और बनाए रखने, को सरल बनाने के एक कुशल विकल्प के रूप में बनाया गया था। इसे जावास्क्रिप्ट परियोजनाओं के लिए कार्य-आधारित कमांड-लाइन अंतरापृष्ठ निर्माण उपकरण के रूप में डिज़ाइन किया गया था।[6]

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

बुनियादी अवधारणाएँ

कमांड-लाइन अंतरापृष्ठ

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

फ़ाइलें

किसी प्रोजेक्ट में ग्रंट का उपयोग करने के लिए, रूट निर्देशिका में दो विशिष्ट फ़ाइलें बनाने की आवश्यकता होती है, अर्थात् package.json और एक ग्रंटफ़ाइल।

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

कार्य

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

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

उदाहरण

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

module.exports = function(grunt) {

  // Task configuration
  grunt.initConfig({
    taskName1: 'Task1 Configuration',
    taskName2: 'Task2 Configuration'
  });

  // Loads plugins
  grunt.loadNpmTasks('pluginName1');
  grunt.loadNpmTasks('pluginName2');

  // Custom tasks
  grunt.registerTask('customTaskName1', 'Custom task description', function(taskParameter) {
    // Custom statements
  });

  // Combining multiple tasks to a single task
  grunt.registerTask('customTaskName2', ['taskName1', 'customTaskName1']);
  // Default task - runs if task name is not specified
  grunt.registerTask('default', ['customTaskName2']);

};

उपरोक्त उदाहरण में, grunt कमांड निष्पादित करने से <customtaskName2> चलेगा जिसे ऊपर <taskName1> और <customTaskName1> दोनों के संयोजन के रूप में परिभाषित किया गया है।

प्लगइन्स

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

विकासकर्ता grunt-init का उपयोग करके अपने स्वयं के ग्रंट प्लगइन्स भी बना सकते हैं और npm publish कमांड (कमान) का उपयोग करके उन्हें एनपीएम पर प्रकाशित कर सकते हैं।

लाभ

ग्रंट का उपयोग करने के कुछ फायदे निम्नलिखित हैं:

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

तुलना

एंट

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

रेक

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

गल्प

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

यह भी देखें

विकसित ऑटोमेशन सॉफ़्टवेयर की सूची सूची

संदर्भ

  1. "Release Date of Version 1.0.0". Retrieved 2020-12-31.
  2. "Releases · gruntjs/grunt". Retrieved 2022-08-16.
  3. "LICENSE file on GitHub". Retrieved 2020-12-31.
  4. "License field from grunt - npm". Retrieved 2020-12-31.
  5. 5.0 5.1 5.2 "Grunt: The JavaScript Task Runner". gruntjs.com. Retrieved 2016-09-14.
  6. "ग्रंट का परिचय - ओपन सोर्स, प्रदर्शन, उपकरण और वर्कफ़्लो - बोकूप". bocoup.com. Retrieved 2016-09-14.
  7. 7.0 7.1 7.2 7.3 Cryer, James (2015). ग्रंट.जेएस के लिए. Apress. p. 1. ISBN 978-1-4842-0013-1.
  8. 8.0 8.1 Pillora, Jaime (2014). Getting Started with Grunt: The JavaScript Task Runner. Livery Place 35 Livery Street Birmingham B3 2PB, UK.: Packt Publishing Ltd. ISBN 978-1-78398-062-8.{{cite book}}: CS1 maint: location (link)


अग्रिम पठन


बाहरी संबंध