2015-03-22 16 views
64

मैं ग्रंट में प्रवेश करने की कोशिश कर रहा हूं, जिसे मैं नया हूं, लेकिन मैं इसकी उपयोगिता को समझ नहीं पा रहा हूं।ग्रंट के लिए क्या है?

मैं समझता हूँ कि यह एक taskrunner है। मैं समझता हूं कि इसका इस्तेमाल बंडल, यूग्लिफ़, जिशिंट, मिनीफाइ इत्यादि जैसी चीजों को करने के लिए किया जा सकता है, जो कुछ भी लिखित कार्य में बदल सकता है।

लेकिन मैं नहीं दिख रहा है क्या लाभ इस देता है। इनमें से लगभग सभी को कमांड लाइन से चलाया जा सकता है, जो कहता है कि आप उन्हें सरल शेल स्क्रिप्ट का उपयोग करके जोड़ सकते हैं। ऐसा लगता है कि गंदगी + gruntfiles और लेखन कार्यों की स्थापना अधिक कम की बजाय एक शेल स्क्रिप्ट लिखने की तुलना में काम है।

मैं इस बारे में क्या याद आ रही है?

+2

ग्रंट परियोजनाओं से ग्रस्त काम लेता है। काम चल रहा जावास्क्रिप्ट अनुकूलक, सीएसएस लिंट और अधिक। कस्टम शैल स्क्रिप्ट लिखना आदर्श नहीं है। गड़बड़ी की स्थापना तुलना में काफी आसान है। – floor

उत्तर

109

ग्रंट मूल रूप से नोडजेएस के शीर्ष पर लिखा गया एक बिल्ड/टास्क मैनेजर है। मैं इसे जावा के लिए एएनटी के बराबर नोडजेएस स्टैक कहूंगा। यहां कुछ आम परिदृश्य आप के तहत घुरघुराना का उपयोग करना चाहते हैं कर रहे हैं:

  1. आप जावास्क्रिप्ट फ़ाइलें minification की आवश्यकता होती है, और आम तौर पर अलग से एक सामने अंत पैदा करने का निर्माण के साथ एक परियोजना है (यदि आप अपने बैकएंड के लिए जावा का कहना है कि प्रयोग कर रहे हैं) । (grunt-contrib-uglify)
  2. जब आप विकास के दौरान अपनी मशीन पर कोड सहेजते हैं, तो आप ब्राउज़र को अपने पृष्ठ को स्वचालित रूप से पुनः लोड करना चाहते हैं (शायद एक छोटी सी चीज़ की तरह लग सकता है, लेकिन मेरा मानना ​​है कि इससे मुझे बहुत समय बचा है) । (लाइव रीलोड)
  3. जब कोई डेवलपर अपनी मशीन पर कोड सहेजता है, तो वह जेएस त्रुटियों/सामान्य सर्वोत्तम अभ्यास उल्लंघनों की व्यापक सूची दिखाना चाहता है। (grunt-contrib-jshint)
  4. आपके पास SASS/LESS फ़ाइलों के साथ एक प्रोजेक्ट है जिसे विकास के दौरान डेवलपर्स मशीन पर सीएसएस फ़ाइलों में संकलित करने की आवश्यकता है, उदाहरण के लिए जब भी वह एक SASS फ़ाइल सहेजता है, तो आप इसे चाहते हैं अपने पृष्ठ में शामिल करने के लिए स्वचालित रूप से एक सीएसएस फ़ाइल में संकलित। (grunt-contrib-sass)
  5. आपके पास यूआई पर काम कर रहे फ्रंट एंड डेवलपर्स की एक टीम है, और बैकएंड पर काम कर रहे बैकएंड डेवलपर्स की एक टीम है, आप चाहते हैं कि बैकएंड REST का उपयोग करने के लिए फ्रंट एंड देव & संकलित किए बिना एपीआई को अपनी मशीनों पर हर बार कोड तैनात करें। यदि आप सोच रहे थे, तो एक सामान्य वेब सर्वर सेटअप के साथ यह संभव नहीं है क्योंकि XHR को ब्राउज़र द्वारा क्रॉस-डोमेन होने की अनुमति नहीं है। Grunt आपके सिस्टम पर ग्रीन कनेक्ट सर्वर के भीतर किसी अन्य सिस्टम में XHR अनुरोधों को पुनर्निर्देशित करने के लिए प्रॉक्सी सेट कर सकता है! (घुरघुराना-योगदान-प्रॉक्सी, घुरघुराना-योगदान कनेक्ट)

मुझे नहीं लगता कि अपने खोल स्क्रिप्ट इन सभी कर सकते हैं करते हैं। संक्षेप में, हां, Gruntfile.js को स्थापित करना किसी ऐसे व्यक्ति के लिए कठिन है जिसने जावास्क्रिप्ट के लिए थोड़ा जोखिम नहीं लिया है/नोडजेएस के लिए नया है, मैं एक ही पीड़ा के माध्यम से एक पीड़ा के माध्यम से चला गया, लेकिन ग्रंट सॉफ्टवेयर का एक अद्भुत टुकड़ा है। अपने सामने के छोर परियोजना के लिए एक उचित Gruntfile.js सेटअप करने के लिए समय निवेश करते हैं, और आप अपने जीवन में बहुत कुछ करने के लिए भगवान का शुक्र है जाएगा आसान :)

लाभ बनाम खोल स्क्रिप्ट:

  1. यदि आप इन कार्यों में से प्रत्येक के लिए खोल स्क्रिप्ट लिखते हैं, तो यह सुनिश्चित करने के लिए कठिन है और फिर अपनी आवश्यकताओं में से प्रत्येक के लिए अनुकूलित करें। Gruntfile.js वास्तव में बहुत आसान है। एक कॉन्फ़िगरेशन है जिसमें आप इसे शामिल करते हैं, यह निर्दिष्ट करते हैं कि आप कौन से कार्य करना चाहते हैं, प्रत्येक के लिए स्रोत और लक्ष्य।

  2. यमन पर परियोजना बीज जेनरेटर के साथ एकीकरण, गुलप पर विचार करने का एक और प्रमुख कारक है। Yeoman और Gulp बुद्धिमान चूक के साथ Gruntfile.js 'के साथ आते हैं। किसी ऐसे व्यक्ति के लिए जो अपनी टीम पर एकमात्र यूआई योगदानकर्ता है, यह मेरे लिए अमूल्य है!

  3. किसी ऐसे व्यक्ति के लिए जो फ्रंटएंड टेक्नोलॉजीज पर काम कर रहा है, यदि आपके पास एक से अधिक व्यक्ति काम कर रहे हैं, तो उनके लिए ग्रंट को जानना आसान है, जो पहले से ही SO पर बहुत से उत्तरों के साथ अच्छी तरह से प्रलेखित है अपनी खोल स्क्रिप्ट जानने के लिए। यह बड़ी टीमों में एक कारक हो सकता है।

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

+3

बहुत अच्छी जवाब। ग्रंट भयानक है !!! – ihue

5

हालांकि मैं सबसे Accepted Answer में बताया लाभ के साथ सहमत हैं, मैं अभी भी नुकसान यह है कि Why we should stop using Grunt & Gulp

इस प्रकार में कीथ सिर्केल से हाइलाइट किया जाता है पर विचार करने के लिए है, कुछ फायदे ग्रंट ओवरहेड्स द्वारा गलत साबित और पर आप कम से कम कर रहे हैं ग्रंट का उपयोग करने के अपने अंतिम निर्णय में, या नहीं, इस सब पर विचार करना चाहिए।

संबंधित मुद्दे