क्या करता है -save-dev का मतलब npm में grunt --save-dev स्थापित करें


277

मैंने अभी Grunt.js का उपयोग करना शुरू किया है । यह सेट करना बहुत कठिन है और मैं एक package.jsonफ़ाइल बनाने के बिंदु पर हूं ।

इस ट्यूटोरियल के बाद , यह कहता है कि package.jsonफ़ाइल बनाने के 3 तरीके हैं ।

पहला काम करना है npm install grunt --save-dev

लेकिन क्या --save-devमतलब है? मैंने देखने की कोशिश की, लेकिन यह व्यर्थ है।


मुझे लगता है कि मैं कुछ जवाब खोजने का प्रबंधन करता हूं। gruntjs.com/getting-started - npmjs.org/doc/json.html#devD dependencies
वेनसो

ट्यूटोरियल लिंक टूट गया
स्टीव एन सी

जवाबों:


317

-सैव-देव: पैकेज आपकी भक्ति पर निर्भर करेगा।

Npm के अनुसार डॉक्स स्थापित करें

यदि कोई आपके प्रोग्राम में आपके मॉड्यूल को डाउनलोड करने और उसका उपयोग करने की योजना बना रहा है, तो वे शायद बाहरी परीक्षण या दस्तावेज़ीकरण फ्रेमवर्क को डाउनलोड या बनाने की आवश्यकता नहीं है जो आप उपयोग करते हैं।

दूसरे शब्दों में, जब आप दौड़ते हैं npm install, तो आपकी परियोजना की निर्भरताएं स्थापित हो जाएंगी, लेकिन आपके पैकेज पर निर्भर किसी भी पैकेज के लिए निर्भरताएं स्थापित नहीं होंगी; इसके अलावा, अन्य ऐप जो आपके ऐप पर निर्भरता के रूप में हैं, उन्हें आपकी निर्भरता को स्थापित करने की आवश्यकता नहीं है। ऐप को विकसित करते समय ऐसे मॉड्यूल की आवश्यकता होनी चाहिए (जैसे कि ग्रंट, मोचा आदि)।

Package.json डॉक्स के अनुसार

संपादित करें: क्या npm installकरता है , यह देखने का प्रयास करें :

  • आपका प्रोजेक्ट
    • निर्भरता स्थापित
      • निर्भरता स्थापित
        • निर्भरता स्थापित
        • निर्भरता स्थापित नहीं है
      • निर्भरता स्थापित नहीं है
    • अवस्थापना स्थापित
      • निर्भरता स्थापित
      • निर्भरता स्थापित नहीं है

2
डिफ़ॉल्ट रूप से यह देव निर्भरता के साथ स्थापित नहीं करेगा, लेकिन फिर मैं कैसे स्थापित करूं? npm install --devझंडा?
स्टेनली ज़ेंग

4
@stanzheng मुझे यकीन नहीं है कि आपको क्या जानना चाहिए। यदि आप एक परियोजना में हैं और चला रहे हैं npm install, तो परियोजना की निर्भरताएं भी स्थापित हो जाएंगी। आप एक निर्भरता की निर्भरता स्थापित नहीं करना चाहते हैं। यदि आप एक npm पैकेज पर विकसित करना चाहते हैं, तो आप git clone xxxवह प्रोजेक्ट करेंगे, और npm installउसमें भाग लेंगे।
एंड्रियास हॉल्टग्रेन

3
"जब आप npm इंस्टॉल चलाते हैं, तो आपके ऐप की निर्भरता के लिए निर्भरता स्थापित नहीं होगी"। अगर मेरे पास एक पैकेज है। Json और इसमें केवल मेरे npm पैकेज के साथ "devD डिपेंडेंसीज़" हैं, और फिर मैं "npm install" टाइप करता हूँ, जो "devDependecies" इंस्टॉल हो जाते हैं।
कोर

6
मैंने समझने की कोशिश की और मैंने नहीं किया। तब मैंने दृश्य को समझने की कोशिश की और मैंने ऐसा नहीं किया। प्रत्येक बुलेट-पॉइंट आइटम का क्या अर्थ है? एक फोल्डर? स्ट्राइकथ्रू आइटम का क्या मतलब है? एक गैर-मौजूदा निर्देशिका? अगर यह सच है, तो आप कैसे गैर-मौजूदा चीजों को सूचीबद्ध कर सकते हैं?
राफेल Eyng

8
स्पष्ट करने के लिए, यदि npm installआपकी परियोजना में चलाया जाता है , तो पैकेज में सभी निर्भरताएँ स्थापित हो जाएँगी। लेकिन यदि आप अपनी परियोजना को नए npm पैकेज के रूप में पैकेज करते हैं और इसे प्रकाशित करते हैं, जब कोई दूसरा व्यक्ति आपके पैकेज को npm इंस्टॉल के साथ स्थापित करता है, तो अवमूल्यन नहीं होंगे। उनके सिस्टम पर स्थापित है। क्या वह सही है? @stanzheng या आप npm install --production को पैकेज में सब कुछ इंस्टॉल करने के लिए चला सकते हैं। इसके अलावा देव निर्भरता को छोड़कर
rwilson04

99

पैकेज पैकेज निर्भरताएँ (कम से कम) दो प्रकार की होती हैं जिन्हें आप अपने पैकेज में इंगित कर सकते हैं।

  1. वे पैकेज जो आपके मॉड्यूल का उपयोग करने के लिए आवश्यक हैं, "निर्भरता" संपत्ति के तहत सूचीबद्ध हैं। Npm का उपयोग करके आप अपने पैकेज में उन निर्भरता को जोड़ सकते हैं। इस तरह से फ़ाइल करें:

    npm install --save packageName
  2. आपके मॉड्यूल को विकसित करने में मदद करने के लिए आवश्यक उन पैकेजों को "देवनिर्भरता" संपत्ति के तहत सूचीबद्ध किया गया है। मॉड्यूल का उपयोग करने के लिए ये पैकेज आवश्यक नहीं हैं, लेकिन यदि वे मॉड्यूल को विकसित करने में मदद करना चाहते हैं, तो इन पैकेजों की आवश्यकता होगी। एनपीएम का उपयोग करके आप अपने पैकेज में उन निर्भरता को जोड़ सकते हैं। इस तरह से फाइल करें:

    npm install --save-dev packageName

35

एंड्रियास के जवाब में जोड़ने के लिए, आप केवल निर्भरता का उपयोग करके स्थापित कर सकते हैं:

npm install --production

7

के लिए npm से प्रलेखन npm install <package-name> --saveऔर npm install <package-name> --save-devयहां पाया जा सकता है:

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

एक package.jsonफ़ाइल मॉड्यूल आप विकसित कर रहे हैं के बारे में मेटाडेटा की घोषणा की। दोनों उपर्युक्त कमांड इस package.jsonफाइल को संशोधित करते हैं। आपके मॉड्यूल के लिए एक निर्भरता के रूप --saveमें स्थापित पैकेज (इस मामले में grunt) की घोषणा करेगा ; --save-devइसे आपके मॉड्यूल के विकास के लिए एक निर्भरता के रूप में घोषित करेगा।

अपने आप से पूछें: क्या स्थापित पैकेज मेरे मॉड्यूल के उपयोग के लिए आवश्यक होगा, या क्या इसे विकसित करने के लिए केवल आवश्यक होगा?


6

जब आप पैरामीटर "--save" का उपयोग करते हैं, तो आपकी निर्भरता package.json में नीचे # 1 के अंदर जाएगी। जब आप पैरामीटर "- save-dev" का उपयोग करते हैं, तो आपकी निर्भरता # 2 के अंदर package.json में जाएगी।

# 1। "निर्भरताएं": ये पैकेज उत्पादन में आपके आवेदन के लिए आवश्यक हैं।

# 2। "अवमूल्यन": ये पैकेज केवल विकास और परीक्षण के लिए आवश्यक हैं


5

मेरे लिए पहला उत्तर थोड़ा भ्रामक प्रतीत होता है, इसलिए इसे छोटा और स्वच्छ बनाने के लिए:

npm install <package_name>डिफ़ॉल्ट रूप से निर्भरता में किसी भी निर्दिष्ट संकुल को बचाता है । इसके अतिरिक्त, आप यह नियंत्रित कर सकते हैं कि कुछ अतिरिक्त झंडों से वे कहाँ और कैसे बचते हैं:

npm install <package_name> --no-save निर्भरता के लिए बचत को रोकता है।

npm install <package_name> ---save-devdevDependenciesआपके पैकेज में अपडेट । ये केवल स्थानीय परीक्षण और विकास के लिए उपयोग किए जाते हैं।

आप dcu में अधिक पढ़ सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.