javascript - ग्रंट, एनपीएम और बोवर के बीच अंतर(पैकेज.जेसन बनाम bower.json)




gruntjs web-frontend (2)

मैं एनपीएम और बॉवर का उपयोग करने के लिए नया हूं, एम्बरजेस में अपना पहला ऐप बना रहा हूं :)।
मेरे पास रेल के साथ थोड़ा सा अनुभव है, इसलिए मैं निर्भरताओं की सूची के लिए फ़ाइलों के विचार से परिचित हूं (जैसे बंडलर जेमफाइल)

प्रश्न: जब मैं पैकेज जोड़ना चाहता हूं (और निर्भरता में गिट में निर्भरता की जांच करता bower.json ), यह bower.json में या bower.json में bower.json से bower.json ?

जो मैं इकट्ठा करता हूं,
चलने वाले bower install पैकेज को bower install और इसे /vendor निर्देशिका में रखेगा,
चल रहा npm install यह इसे /node_modules और इसे /node_modules निर्देशिका में डाल देगा।

यह SO उत्तर कहता है कि बोवर फ्रंट एंड के लिए है और एनपीएम बैकएंड सामान के लिए है।
Ember-app-kit पहली नज़र से इस भेद का पालन करने लगता है ... लेकिन कुछ कार्यक्षमता को सक्षम करने के लिए ग्रंटफाइल में निर्देश दो स्पष्ट आदेश देते हैं, इसलिए मैं यहां पूरी तरह उलझन में हूं।

सहजता से मुझे लगता है कि

  1. npm install --save-dev पैकेज-नाम पैकेज-नाम को मेरे package.json में जोड़ने के बराबर होगा

  2. बॉवर इंस्टॉल - सेव पैकेज-नाम मेरे bower.json में पैकेज जोड़ने और बॉवर इंस्टॉल चलाने जैसा ही हो सकता है?

यदि ऐसा है, तो मुझे कभी भी उन फ़ाइलों को जोड़ने के बिना पैकेज को इंस्टॉल क्यों करना चाहिए जो निर्भरताओं का प्रबंधन करते हैं (विश्व स्तर पर कमांड लाइन उपकरण स्थापित करने के अलावा)?


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

एक तथ्य यह है कि यह और अधिक भ्रमित करने वाला यह है कि एनपीएम कुछ पैकेज प्रदान करता है जिसका उपयोग फ्रंट एंड डेवलपमेंट में भी किया जा सकता है, जैसे कि jshint और jshint

ये रेखाएं अधिक अर्थ जोड़ती हैं

बीओपी, एनपीएम के विपरीत, कई फाइलें हो सकती हैं (जैसे .js, .css, .html, .png, .ttf) जिन्हें मुख्य फ़ाइल माना जाता है। बोवर अर्थात् इन मुख्य फ़ाइलों को मानता है, जब एक साथ पैक किया जाता है, एक घटक।

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

  1. कुछ फाइलों को ज़िपित करना (जैसे ज़िप प्लगइन)
  2. जेएस फाइलों पर लिंटिंग (jshint)
  3. कम फ़ाइलों को संकलित करना (grunt-contrib-less)

एसएएस संकलन के लिए गंदे प्लगइन हैं, अपनी जावास्क्रिप्ट को गले लगाते हैं, फ़ाइलों / फ़ोल्डरों की प्रतिलिपि बनाते हैं, जावास्क्रिप्ट को छोटा करते हैं आदि।

कृपया ध्यान दें कि ग्रंट प्लगइन भी एक एनपीएम पैकेज है।

प्रश्न 1

जब मैं एक पैकेज जोड़ना चाहता हूं (और निर्भरता में गिट में निर्भरता की जांच करता हूं), यह कहां से संबंधित है - package.json में या bower.json में

यह वास्तव में निर्भर करता है कि यह पैकेज कहां से संबंधित है। यदि यह एक नोड मॉड्यूल है (जैसे गड़बड़, अनुरोध) तो यह पैकेज.जेसन में अन्यथा बोवर जेसन में जाएगा।

प्रश्न 2

मुझे कभी भी संकुल को प्रबंधित करने वाली फ़ाइल में जोड़ने के बिना स्पष्ट रूप से संकुल को संस्थापित करना चाहिए

इससे कोई फर्क नहीं पड़ता कि आप संकुल को संस्थापित कर रहे हैं या .json फ़ाइल में निर्भरता का उल्लेख कर रहे हैं। मान लीजिए कि आप नोड प्रोजेक्ट पर काम करने के बीच में हैं और आपको request करने के लिए एक और प्रोजेक्ट चाहिए, तो आपके पास दो विकल्प हैं:

  • Package.json फ़ाइल संपादित करें और 'अनुरोध' पर निर्भरता जोड़ें
  • एनपीएम स्थापित करें

या

  • कमांडलाइन का उपयोग करें: npm install --save request

--save विकल्प --save फ़ाइल पर निर्भरता भी जोड़ता है। यदि आप - --save विकल्प निर्दिष्ट नहीं करते हैं, तो यह केवल पैकेज डाउनलोड करेगा लेकिन --save फ़ाइल अप्रभावित होगी।

आप इसे किसी भी तरह से कर सकते हैं, इसमें कोई अंतर नहीं होगा।


मध्य 2016 के लिए अपडेट करें :

चीजें इतनी तेज़ी से बदल रही हैं कि यदि 2017 के अंत में यह उत्तर अब तक अद्यतित नहीं हो सकता है!

शुरुआती बिल्ड टूल्स और वर्कफ़्लोज़ की पसंद में शुरुआती लोग खो सकते हैं, लेकिन 2016 में सबसे ज्यादा अद्यतित है बॉवर, ग्रंट या गुलप का उपयोग नहीं कर रहा है! वेबपैक की मदद से आप सीधे एनपीएम में सबकुछ कर सकते हैं!

मुझे गलत वर्कफ़्लोज़ का उपयोग न करें और मैं अभी भी अपनी विरासत परियोजना में गुलप का उपयोग करता हूं (लेकिन धीरे-धीरे इससे बाहर निकलता हूं), लेकिन इस तरह वर्कफ़्लो में काम करने वाली सर्वश्रेष्ठ कंपनियों और डेवलपर्स में यह बहुत कम पैसा कमाता है!

इस टेम्पलेट को देखें यह एक बहुत ही अद्यतित सेटअप है जिसमें सर्वोत्तम और नवीनतम तकनीकों का मिश्रण शामिल है: https://github.com/coryhouse/react-slingshot

  • Webpack
  • एक निर्माण उपकरण के रूप में एनपीएम (कोई गुलदस्ता, ग्रंट या बोवर)
  • Redux के साथ प्रतिक्रिया
  • ESLint
  • सूची लंबी है। जाओ और एक्सप्लोर करें!

आपके सवाल:

जब मैं एक पैकेज जोड़ना चाहता हूं (और निर्भरता में गिट में निर्भरता की जांच करता हूं), यह कहां से संबंधित है - package.json में या bower.json में

  • सबकुछ पैकेज.जेसन में आता है

  • निर्माण के लिए आवश्यक निर्भरता "devDependencies" यानी npm npm install require-dir --save-dev (--save-dev devdependencies में प्रविष्टि जोड़कर आपके package.json को अद्यतन करती है)

  • रनटाइम के दौरान आपके एप्लिकेशन के लिए आवश्यक निर्भरता "निर्भरता" यानी npm install lodash --save (--सेव निर्भर करता है कि निर्भरता में एक प्रविष्टि जोड़कर अपने पैकेज.जेसन को अपडेट करें)

यदि ऐसा है, तो मुझे कभी भी उन फ़ाइलों को जोड़ने के बिना पैकेज को इंस्टॉल क्यों करना चाहिए जो निर्भरताओं का प्रबंधन करते हैं (विश्व स्तर पर कमांड लाइन उपकरण स्थापित करने के अलावा)?

हमेशा बस आराम की वजह से। जब आप एक ध्वज ( --save-dev या --save ) फ़ाइल को --save जो --save (package.json) को प्रबंधित करता है स्वचालित रूप से अपडेट हो जाता है। मैन्युअल रूप से निर्भरताओं को संपादित करके समय बर्बाद न करें। npm install --save-dev package-name लिए शॉर्टकट npm install --save-dev package-name npm i -D package-name और npm install --save package-name लिए शॉर्टकट है npm install --save package-name npm i -S package-name





web-frontend