2015-12-15 9 views
37

Grunt, Gulp.js और Bower के बीच क्या अंतर है? क्यों & उन्हें कब और कैसे उपयोग करें?Grunt, Gulp.js और Bower के बीच क्या अंतर है? उन्हें कब और कब उपयोग करें?

मैं आजकल देखा है, उपकरण ऊपर सामने के अंत परियोजना उपयोग के अधिकांश, हालांकि मैं उनकी तरह मेरी हाल ही में इस परियोजना में मैं घूंट उपयोग कर रहा हूँ HTML, सीएसएस निर्माण करने के लिए और जावास्क्रिप्ट

$ gulp build 
तरह स्क्रिप्ट का उपयोग कर उपयोग कर रहा हूँ

लेकिन इन सभी फ्रंट-एंड फ्रेमवर्क की ज्यादा समझ नहीं है, कृपया मुझे ग्रंट, गुलप.जे और बॉवर की समग्र समझ प्राप्त करने में मदद करें।

+3

क्यों 'सुडो'?मुझे –

+2

@ वाल्टरट्रॉस के लिए एक अच्छा विचार नहीं दिखता है कभी-कभी '' 'npm''' अनुमतियां [खराब] [https://docs.npmjs.com/getting-started/fixing-npm-permissions) और' ' 'gulp'' कार्य npm चला सकता है ([ex] (https://www.npmjs.com/package/gulp-npm-run)) –

+0

@ वाल्टरट्रॉस' सूडो 'मैक उपयोगकर्ता के लिए है I अनुमान है। – Santosh

उत्तर

41

संक्षेप में और हाथ से लहराते विवरण के दूर के एक बहुत कुछ के साथ, Gulp और Grunt एक दूसरे पर निर्भर कार्यों की serieses, आमतौर पर अपनी परियोजना के "निर्माण" को परिभाषित करने के लिए इस्तेमाल किया स्वचालित, एक आधुनिक तरह के लिए दोनों प्रणालियों रहे हैं पर ले make उपकरण। आम तौर पर एक परियोजना उनमें से एक या दूसरे का उपयोग करती है, लेकिन दोनों एक ही समय में नहीं (उसी भागों के लिए, वैसे भी)।

Bower अलग है, और अक्सर गुलप या ग्रंट के साथ प्रयोग किया जाता है: यह क्लाइंट-साइड लाइब्रेरीज़ के लिए एक पैकेज मैनेजर है, जिससे उन libs को अद्यतित रखना आसान हो जाता है, उन्हें और उनकी निर्भरता को मानकीकृत तरीके से निर्दिष्ट करें, और इसलिए आगे।

Gulp एक लाइनर उनकी वेबसाइट से:

स्वचालित और बढ़ाने के अपने कार्यप्रवाह

उनकी से

ग्रंट एक लाइनर:

जावास्क्रिप्ट टास्क धावक

और बोवर:

वेब


क्यों & जब उन्हें इस्तेमाल करने के लिए एक पैकेज प्रबंधक?

मुझे लगता है कि इसके बाद के संस्करण को शामिल किया गया है कि Gulp और ग्रंट के लिए: यदि आप कार्य आप (परिवर्तन के लिए minification, संयोजन, संपीड़न, आदि .; या देख फाइलों के साथ एक वेबसाइट के रिलीज़ संस्करण के निर्माण की तरह स्वचालित करना चाहते है, तो और जब वे तेजी से विकास का समर्थन करने के लिए बदलते हैं तो फिर से चलने वाले कार्यों), आप इसके लिए गुलप और ग्रंट का उपयोग कर सकते हैं।

लेकिन यह सिर्फ निर्माण नहीं करता है। आप गुलप और ग्रंट का उपयोग उन कार्यों के किसी भी श्रृंखला के लिए कर सकते हैं जिन्हें आपको स्वचालित करने की आवश्यकता है।

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

+0

हाय @ टीजे। पाउडर क्या आप कृपया स्पष्टीकरण दे सकते हैं यदि बोवर क्लाइंट-साइड पैकेज मैनेजर है, तो हम इसे nuget से अलग कैसे कर सकते हैं क्योंकि हम इसके माध्यम से क्लाइंट या सर्वर-साइड लाइब्रेरी भी जोड़ सकते हैं। – sam

+1

@sam: बोवर क्लाइंट-साइड पैकेज के बारे में है। जैसा कि मैं इसे समझता हूं, NuGet VS.Net के लिए एक पैकेज प्रबंधक है; VS.Net का उपयोग क्लाइंट-साइड और सर्वर-साइड दोनों चीजों के निर्माण के लिए किया जा सकता है। मुझे नहीं पता कि NuGet में चीजें हैं जो पूरी तरह से ब्राउज़र-आधारित उपयोग के लिए हैं। –

14

gulp और Grunt, gulpnode से धाराओं का उपयोग करता है, जबकि परिणाम प्राप्त करने के कार्य धावक हैं। वे एक ही समस्या के लिए अलग अलग दृष्टिकोण हैं। Grunt का उपयोग करता है विन्यास आधारित दृष्टिकोण। आप कैसे और जो कार्य (फ़ाइलों की प्रतिलिपि निष्पादित करने के लिए परिभाषित करने के लिए उन्हें इस्तेमाल , बैनर, जगह पाठ, शैली की जाँच, आदि ...) जोड़ने। वे हैं (आमतौर पर) कमांड लाइन से, मैन्युअल रूप से, चलाते हैं।

उदाहरण के लिए यदि कॉपी करने और संशोधित फ़ाइलों Grunt मध्यवर्ती फाइल बनाएगा और gulpnode का लाभ उठाने होंगे फ्लाई पर स्ट्रीम और ट्रांसफॉर्म।

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

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

9

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

ग्रंट इन फ्रंटेंड टास्क ऑटोमोटर्स में से पहला था जो उपलब्ध था। यह उपलब्ध था कि इससे क्या बेहतर था पहर। यह अभी भी एक बड़ा अनुसरण और सक्रिय समुदाय है।

गुलप एक तरह से गड़बड़ी से आया, और धाराओं का उपयोग करके इसे सुधारता है, फाइल नहीं।

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

6

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

  1. गुलप आम तौर पर अधिक संक्षिप्त (प्लगइन केवल एक चीज कर रहा है और धाराओं के दृष्टिकोण) और पठनीय है। गुलप में मैंने एक ग्रिंट स्क्रिप्ट को रेडिड किया जिसके परिणामस्वरूप कोड के आधार पर केवल एक चौथाई ही परिणाम उत्पन्न हुआ।

  2. गुलप सामान्य रूप से तेज़ है।

  3. हालांकि गुलप में कम प्लगइन और पतली प्रलेखन कुंजी प्लगइन minification, concatenation, लिस्टिंग, कम ट्रांसमिशन, और इतने आगे के लिए उपलब्ध हैं और वर्तमान में अच्छी तरह से काम कर रहे हैं।
संबंधित मुद्दे

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