Npm अनइंस्टॉल का उपयोग करते समय package.json से निर्भरता को स्वचालित रूप से हटा दें


84

इसके बाद npm initमैं अपने पैकेज में निर्भरता जोड़ सकता हूं।

npm install package --save

और कहते हैं, मैं uninstallपैकेज चाहता हूं और मैं ऐसा कर रहा हूं:

npm uninstall package

लेकिन मैं चाहता हूं कि मेरे पैकेज.जॉन को उसी हिसाब से अपडेट किया जाए, बिना मुझे मैन्युअल रूप से फाइल में जाने और उस लाइन को हटाने के।

Npm डॉक्स से यह कहता है:

यह कड़ाई से जोड़ने योग्य है, इसलिए यह आपके पैकेज से विकल्पों को नहीं हटाता है। ऐसा करने के लिए वास्तव में अच्छा कारण के बिना।

इसलिए, मैं सिर्फ यह जानना चाहता था कि क्या यह संभव है।


चूँकि मेरी निर्भरताएँ स्वचालित रूप से package.json पर जुड़ जाती हैं, जब भी मैं (--save) ध्वज के साथ स्थापित करता हूं, तो मैं सोच रहा था कि क्या जब भी मैं पैकेज की स्थापना रद्द करता हूँ, पैकेज से निर्भरता को हटाने का एक तरीका है।
चीख

जवाबों:


150

उसी --saveध्वज का उपयोग करें । यदि आपने इसके साथ एक निर्भरता स्थापित की है:

$> npm install grunt-cli --save

आप इसे अनइंस्टॉल कर सकते हैं।

$> npm uninstall grunt-cli --save

'सेव' फ्लैग npm को पैकेज को अपडेट करने के लिए कहता है। ऑपरेशन के आधार पर आपके द्वारा अभी-अभी किया गया।


3
मैं npm का उपयोग ember-cli के साथ कर रहा हूँ और मुझे --save-devइसके बजाय उपयोग करना था --save
gerry3

4
यदि आपने इसे ssave-dev के साथ संस्थापित किया है, तो अनइंस्टॉल भी है - save-dev, क्योंकि - save संकुल के dependenciesखंड में सहेजता है। json फ़ाइल, जबकि --save-dev devDependenciesअनुभाग में बचाएगा
माइक '

7
मैं इस सवाल को पोस्ट करने के बाद से यहाँ आया हूँ और यहाँ थोड़ा प्रो-टिप है। आप npm i <package_name> -Sअपनी dependenciesसूची npm i <package_name> -Dमें जोड़ने के लिए या अपने को जोड़ने के लिए उपयोग कर सकते हैं dev-dependencies। उसी ध्वज को हटाने के लिए लागू होता है npm rm <package_name> -Sयाnpm rm <package_name> -D
shriek

1
लेकिन ध्यान दें कि ये केवल --save और --save-dev के लिए शॉर्टहैंड फ्लैग समकक्ष हैं। npm helpसभी झंडे और उनके आशुलिपि समकक्षों के लिए देखें । (-S या --save के साथ कुछ भी इंस्टॉल किया गया है और या तो इनका उपयोग करके अनइंस्टॉल किया जा रहा है, npm उन्हें अलग-अलग नहीं दिखता है। -S के लिए बस "कम टाइपिंग")
माइक 'पोमैक्स' कमरमन्स

1
आप पुरुषों में एक संत हैं।
जॉन वॉन न्यूमैन

0

मेरे मामले में - save ने package.json से प्रविष्टि को स्पष्ट नहीं किया, आयनिक-चेक द्वारा सुझाई गई कमांड मुझे लगता है कि अगर अनइंस्टॉल किसी भी त्रुटि के साथ बाहर निकलने के लिए होता है। json अपडेट नहीं किया जाएगा जिस स्थिति में आपके पास केवल एक विकल्प है पैकेज को मैन्युअल रूप से बदलने के लिए। इसे थकाऊ, लेकिन एकमात्र तरीका है जो मुझे लगता है

अपडेट करें

जब आप किसी ऐसे पैकेज की स्थापना रद्द करते हैं, जिस पर अन्य पैकेज पर निर्भरता होती है, जो तब सक्रिय होता है, जो मामला अनइंस्टॉल त्रुटियों / चेतावनियों के साथ विफल हो सकता है, तो सुरक्षित विधि निम्नलिखित निर्भरता ग्राफ के माध्यम से है यदि कोई उपकरण उपलब्ध नहीं है, तो इस तरह के संचालन के तहत एक आसान उपकरण, चेतावनी संदेश काफी भ्रामक हैं हालांकि "आपको सहकर्मी निर्भरताएं स्थापित करनी चाहिए .." जब हम पैकेज की स्थापना रद्द कर रहे हैं तो इसका कोई मतलब नहीं है


1
यह आवश्यक नहीं होना चाहिए: यदि यह dependenciesसूची में है, तो इसे हटा uninstall --save देना चाहिए , भले ही इस पर कुछ और निर्भर हो। NPM इसके बजाय चतुर निर्भरता समतल करने का उपयोग करता है, यदि आपके पास अपनी निर्भरता सूची में X (स्पष्ट रूप से) है और आप X --save की स्थापना रद्द करते हैं, तो यह हटा दिया जाएगा। हालांकि, कई निर्भरता सूचियों देखते हैं, और कहा कि याद --saveके रूप में ही नहीं है --save-dev, --save-prodया --save-optional। इसके अलावा हाँ: यदि आपकी uninstallत्रुटियां होती हैं, तो NPM उस त्रुटि पर रुक जाता है। यह जारी रखने की कोशिश नहीं करता है क्योंकि यह अब शुद्धता की गारंटी नहीं दे सकता है।
माइक 'पोमैक्स' कमेरमन्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.