मुझे या तो एक पैकेज स्थापित करने के निर्देश मिलते हैं
npm install <package_name>
या
npm install <package_name> --save
या
npm install <package_name> --save-dev
इन विकल्पों में क्या अंतर है?
जवाबों:
npm install <package_name> --save
पैकेज स्थापित करता है और आपके पैकेज में निर्भरता को अद्यतन करता है ।json। चूँकि यह प्रश्न पूछा गया था कि npm में परिवर्तन हुआ है, जैसे कि --save
डिफ़ॉल्ट विकल्प बन गया है, इसलिए आपको --save
निर्भरता को अद्यतन करने के लिए उपयोग करने की आवश्यकता नहीं है ।
npm install <package_name> --no_save
पैकेज स्थापित करता है लेकिन निर्भरता को अद्यतन नहीं करता है जैसा कि आपके पैकेज में सूचीबद्ध है।
npm install <package_name> ---save-dev
devDependencies
आपके पैकेज में अपडेट । ये केवल स्थानीय परीक्षण और विकास के लिए उपयोग किए जाते हैं।
आप https://docs.npmjs.com/getting-started/use-a-package.json पर अधिक पढ़ सकते हैं ।
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
--save
विकल्प अभी भी काम करता दिखाई देता है, अब इसकी आवश्यकता नहीं है - पैकेज अब डिफ़ॉल्ट रूप से निर्भरता के लिए सहेजे गए हैं । तर्क अब उलटा है - यदि आप अपने पैकेज को बचाना नहीं चाहते हैं, तो आपको निर्दिष्ट करने की आवश्यकता है--no-save
--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- बंडल: सहेजे गए आश्रितों को आपकी बंडल-निर्भरता सूची में भी जोड़ा जाएगा।