क्या -save झंडे npm स्थापित के साथ क्या करते हैं


101

मुझे या तो एक पैकेज स्थापित करने के निर्देश मिलते हैं

npm install <package_name>

या

npm install <package_name> --save

या

npm install <package_name> --save-dev

इन विकल्पों में क्या अंतर है?

जवाबों:


84

npm install <package_name> --saveपैकेज स्थापित करता है और आपके पैकेज में निर्भरता को अद्यतन करता है ।json। चूँकि यह प्रश्न पूछा गया था कि npm में परिवर्तन हुआ है, जैसे कि --saveडिफ़ॉल्ट विकल्प बन गया है, इसलिए आपको --saveनिर्भरता को अद्यतन करने के लिए उपयोग करने की आवश्यकता नहीं है ।

npm install <package_name> --no_save पैकेज स्थापित करता है लेकिन निर्भरता को अद्यतन नहीं करता है जैसा कि आपके पैकेज में सूचीबद्ध है।

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

आप https://docs.npmjs.com/getting-started/use-a-package.json पर अधिक पढ़ सकते हैं ।


3
यह "npm --save flag" पर मेरी Google खोज के लिए शीर्ष उत्तर था। कृपया इसे सही जानकारी के साथ अपडेट करने पर विचार करें, यानी कि - save अब डिफ़ॉल्ट है, और -no-save को पैकेज में निर्भरता की सूची को अपडेट नहीं करने के लिए आवश्यक है।
Json

51

npm इंस्टॉल में 3 विशेष, वैकल्पिक झंडे लगते हैं जो आपके मुख्य पैकेज में पैकेज संस्करण को सहेजते या अद्यतन करते हैं।

-S, --save: पैकेज आपकी निर्भरता में दिखाई देगा।

-D, --save-dev: पैकेज आपकी भक्ति पर निर्भर करेगा।

-O, --save-optional: पैकेज आपकी वैकल्पिक निर्भरता में दिखाई देगा।

अपने पैकेज के लिए निर्भरता को बचाने के लिए उपरोक्त विकल्पों में से किसी का उपयोग करते समय। json, एक अतिरिक्त, वैकल्पिक ध्वज है:

-E, --save-exact: सहेजे गए निर्भरताएँ npm के डिफ़ॉल्ट सेमर रेंज ऑपरेटर का उपयोग करने के बजाय एक सटीक संस्करण के साथ कॉन्फ़िगर की जाएंगी। इसके अलावा, यदि आपके पास एक npm-compresswrap.json है तो इसे भी अपडेट किया जाएगा।

<scope>वैकल्पिक है। पैकेज को निर्दिष्ट दायरे से जुड़ी रजिस्ट्री से डाउनलोड किया जाएगा। यदि कोई रजिस्ट्री दी गई गुंजाइश से संबद्ध नहीं है तो डिफ़ॉल्ट रजिस्ट्री मान ली गई है। Npm-गुंजाइश देखें।

नोट: यदि आप @ स्कोम्बॉल को अपने स्कोप के नाम में शामिल नहीं करते हैं, तो npm इसकी जगह GitHub रिपॉजिटरी के रूप में व्याख्या करेगा, नीचे देखें। स्कोप्स नाम भी एक स्लैश द्वारा पीछा किया जाना चाहिए।

उदाहरण:

npm install sax --save
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save --save-exact

नोट: यदि कोई फ़ाइल या फ़ोल्डर <name>वर्तमान कार्यशील निर्देशिका में नामित है, तो वह उसे स्थापित करने का प्रयास करेगा, और यदि यह मान्य नहीं है तो केवल पैकेज को नाम से लाने का प्रयास करें।

(आधिकारिक डॉक्स से) https://docs.npmjs.com/cli/install


51
हालांकि --saveविकल्प अभी भी काम करता दिखाई देता है, अब इसकी आवश्यकता नहीं है - पैकेज अब डिफ़ॉल्ट रूप से निर्भरता के लिए सहेजे गए हैं । तर्क अब उलटा है - यदि आप अपने पैकेज को बचाना नहीं चाहते हैं, तो आपको निर्दिष्ट करने की आवश्यकता है--no-save
Coruscate5

धन्यवाद, @ Coruscate5 ने मेरे प्रश्न का सटीक उत्तर दिया।
कोन

27

--saveध्वज अब किसी उद्देश्य पूर्ति नहीं करता है।

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

इस बिंदु पर यदि आप npm installनिर्भरता को बचाने से रोकना चाहते हैं , तो आपको इसका उपयोग करना होगा--no-save ध्वज ।

अपनी टिप्पणी में इसका उल्लेख करने के लिए Coruscate5 का धन्यवाद ।

Npm-install प्रलेखन में अधिक जानकारी :

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

-पी, --वेव-ठेस: पैकेज आपकी निर्भरता में दिखाई देगा। यह डिफ़ॉल्ट है जब तक -D या -O मौजूद नहीं है।

-D, --save-dev: पैकेज आपकी भक्ति पर निर्भर करेगा।

-O, --save- वैकल्पिक: पैकेज आपकी वैकल्पिक निर्भरता में दिखाई देगा।

-नहीं-बचत: निर्भरता के लिए बचत को रोकता है।

अपने पैकेज के लिए निर्भरता को बचाने के लिए उपरोक्त विकल्पों में से किसी का उपयोग करते समय। json, दो अतिरिक्त, वैकल्पिक झंडे हैं:

-E, --save- सटीक: सहेजे गए निर्भरता npm के डिफ़ॉल्ट सेमर रेंज ऑपरेटर का उपयोग करने के बजाय एक सटीक संस्करण के साथ कॉन्फ़िगर किया जाएगा।

-B, -save- बंडल: सहेजे गए आश्रितों को आपकी बंडल-निर्भरता सूची में भी जोड़ा जाएगा।


मौजूदा स्थिति को कवर करने के लिए अद्यतन जवाब के लिए धन्यवाद
DrCord

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