2016-11-03 30 views
10

के बीच क्या अंतर है मैं react-native पैकेज का उपयोग कर रहा था जिसे मैंने npm के साथ विश्व स्तर पर स्थापित किया था। अब यह init कमांड निष्पादित करने के बाद पहली पंक्ति में कहता है। निम्नलिखित:ब्रू, यार्न और एनपीएम

Installing react-native from npm... 
Consider installing yarn to make this faster: https://yarnpkg.com 

तो मैं उस वेबसाइट की जांच कर रहा था और यह मेरे लिए दिलचस्प लग रहा था, लेकिन मुझे बिल्कुल नहीं पता कि यह क्या होगा। सबसे पहले, मैंने सोचा कि yarn स्थापित करने के लिए मुझे brew की आवश्यकता होगी, इसलिए मैं npm इंस्टॉल करने के लिए यार्न कर सकता था। लेकिन अब मुझे लगता है कि yarnnpm का प्रतिस्थापन है। क्या यह एक सही बयान है?

क्या कोई मुझे बता सकता है कि मैं इतना पैकेज प्रबंधक क्यों लेना चाहता हूं? मैं समझता हूं कि यह परमाणु या दृश्य स्टूडियो कोड जैसे सॉफ़्टवेयर के लिए उपयोगी है, जिसमें अपना पैकेज प्रबंधक है। लेकिन विकास के लिए, मुझे कोई कारण नहीं दिख रहा है कि कोई 4 अलग पैकेज मैनेजर्स ('प्राथमिक सॉफ्टवेयर' के लिए ब्रू, yarnnpm पैकेज, बैकएंड मॉड्यूल के लिए एनपीएम और फ्रंट एंड लाइब्रेरीज़ के लिए बोवर) का उपयोग क्यों करना चाहेंगे। क्या कोई मेरे लिए इस पैकेज प्रबंधक वन को उलझा सकता है?

उत्तर

12

मैं ब्रू से परिचित नहीं हूं, लेकिन मुझे लगता है कि आप मैकोज़ के लिए होमब्रू सॉफ्टवेयर पैकेज प्रबंधन प्रणाली का मतलब है।

फिर प्रत्येक प्रणाली का उद्देश्य है:

  1. काढ़ा: सॉफ्टवेयर की स्थापना, अर्थात wget जैसे अनुप्रयोगों का उपभोग करने के लिए तैयार।
  2. एनपीएम: पैकेजों की स्थापना (पुस्तकालय), यानी कार्यक्षमता के टुकड़े जो आपको अपने स्वयं के अनुप्रयोग बनाने में मदद करते हैं।
  3. यार्न: पैकेजों की स्थापना भी।

यार्न के पास एनपीएम पर कुछ फायदे हैं, मुख्य दो गति और भविष्यवाणी है। यार्न ने एनपीएम की पैकेज.जेसन फ़ाइल का पुन: उपयोग किया और इसकी संरचना नहीं बदली। इसलिए आप npm install के बजाय yarn install चला सकते हैं और सैद्धांतिक रूप से सब कुछ स्वचालित रूप से काम करेगा।

पीएस मैं मानता हूं, https://yarnpkg.com में पर्याप्त पृष्ठभूमि नहीं है कि हमें किसी अन्य पैकेज प्रबंधन प्रणाली की आवश्यकता क्यों है, लेकिन there is a great article जो उस अंतर को भरता है।

2

यार्न NPM

यार्न और NPM बनाम दोनों मॉड्यूल प्रतिष्ठानों और निर्भरता का प्रबंधन कर रहे हैं। यार्न को एनपीएम की कुछ कमियों को हल करने के लिए बनाया गया था। NPM से अधिक यार्न के

सबसे बड़ी फायदे

  1. स्थापित पैकेज के साथ यार्न parallelized है और इसलिए पैकेज स्थापना तेजी से होता है कर रहे हैं।
  2. package.json संस्करण संख्याओं के संदर्भ में बहुत ढीला हो सकता है। यार्न.लॉक (एनपीएम शर्कवाप के समान) इसे नीचे लॉक करता है ताकि एक ही पैकेज.जेसन के साथ दो मशीनें हमेशा सटीक उसी पैकेज को इंस्टॉल करें।

  3. yarn क्यों क्यों कुछ पैकेज स्थापित किया गया है आप की जाँच करने के (समझ में निर्भरता वृक्ष)

रेफरी की अनुमति देता है: https://www.sitepoint.com/yarn-vs-npm/

+0

कौन परवाह करता है कि संकुल कितने तेज़ हैं, यदि यह 0.5ms या 0.75ms है? – Serge

0

यार्न है, NPM, के लिए एक पैकेज प्रबंधक की तरह Node.JS. यार्न फेसबुक द्वारा बनाया गया है। यह तेज़ है और एनपीएम की तुलना में अधिक सुविधाएं हैं।

उनका मुख्य विक्रय बिंदु हैं:

  • के साथ सुरक्षा yarn.lock फ़ाइल (NPM के NPM-shrinkwrap.json के समान) सभी निर्भरता सही संस्करण पर बंद हैं। तो, आपके पास "नहीं है लेकिन यह मेरी मशीन पर काम करता है" अब संघर्ष करता है। हर कोई ही संस्करणों तेजी से अपने मॉड्यूल वितरित करने के लिए yarn.lock फ़ाइल
  • स्पीड यार्न का उपयोग करता है (तेज) प्रॉक्सी और (ऑफ़लाइन) कैशिंग में बंद है। इसमें एक लाइसेंस जांचकर्ता भी है, जो आपके सभी निर्भरता मॉड्यूल के लाइसेंस की जांच करता है।
0

यार्न फेसबुक, Google, एक्सपोनेंट और टिल्डे द्वारा निर्मित जावास्क्रिप्ट पैकेज मैनेजर है। यह एनपीएम में मौजूद सुविधाओं को हटाने या दूर करने के लिए बनाया गया है। इतनी तेजी से स्थापना

एक अन्य प्रमुख अंतर था yarn.lock फ़ाइल लेकिन NPM के बाद^5 - NPM साथ इसकी तुलना में यह

  • बढ़ी सुरक्षा
  • ऑफलाइन मोड
  • समानांतर स्थापना है। एक्सएक्स वे पैकेज.lock.json फ़ाइल भी प्रदान करते हैं।

    और NPM

    #Starting a new project 
    npm init === yarn init  
    
    #Installing all the dependencies of project 
    npm install === yarn or yarn install  
    
    #Adding a dependency 
    npm install [package] === yarn add [package] #The package is saved to your package.json immediately.  
    npm install [package]@[version] === yarn add [package]@[version] 
    npm install [package]@[tag] === yarn add [package]@[tag] 
    
    #Add a dev dependency 
    npm install [package] --save-dev === yarn add [package] --dev 
    
    #Upgrading a dependency 
    npm update [package] === yarn upgrade [package] 
    npm update [package]@[version] === yarn upgrade [package]@[version] 
    npm update [package]@[tag] === yarn upgrade [package]@[tag] 
    
    #Removing a dependency 
    npm uninstall [package] === yarn remove [package] 
    
    #View registry information 
    npm view [package] === yarn info [package] 
    
    #List installed packages 
    npm list === yarn list 
    npm list --depth === yarn list --depth=0 
    
    #Install packages globally 
    npm install -g [package] === yarn global addb [package] 
    
    #Run a defined package script 
    npm run [script] === yarn run [script] 
    

    Refferences

    https://www.sitepoint.com/yarn-vs-npm/

    https://scotch.io/@brian_kimo/npm-vs-yarn

    और आधिकारिक घोषणा की तरह काम करता है यार्न के आदेशों

    https://code.facebook.com/posts/1840075619545360

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