आप npm का उपयोग करके किसी ऐप की निर्भरता को कैसे पुनर्स्थापित करते हैं?


383

क्या सभी पैकेजों को पुन: स्थापित करने का एक सरल तरीका है जो मेरा ऐप निर्भर करता है (यानी वे मेरे ऐप्स में हैं नोड_मॉडल फ़ोल्डर)?


4
npm rebuildदेशी आश्रितों के साथ कुछ मुद्दों पर भी मदद कर सकते हैं
फ्रांसिस्को प्रेसेनिया

1
मामले में यह दूसरों की मदद करता है: यदि आप सिर्फ एक पैकेज को फिर से स्थापित करने की कोशिश कर रहे हैं, तो npm update <packageName>महान काम करता है
22:14

जवाबों:


616

सबसे आसान तरीका जो मैं देख सकता हूं वह है node_modulesफ़ोल्डर हटाना और निष्पादित करना npm install


27
माना; यह मानते हुए कि आपने package.jsonअपने ऐप के लिए एक फ़ाइल बनाई है ।
जॉनीएचके

8
निर्देशिका npm installहटाने के बाद चल रहे सावधान रहें कि नीचे खींचे जाने node_modulesमें परिभाषित निर्भरता के विभिन्न संस्करण हो सकते हैं package.json। यदि आपको अपने एप्लिकेशन के लिए बहुत विशिष्ट संस्करणों की आवश्यकता है, तो सावधान रहें और npm shrinkwrapअपनी node_modulesनिर्देशिका से स्रोत नियंत्रण में देखें या चेक करें ।
स्मिथक्ले

9
@smithclay मैंने अपने ऐप के पैकेजों में पैकेज के स्पष्ट संस्करण को परिभाषित किया है। इसके अलावा, यह ठीक है, ठीक होना चाहिए?
त्रिकूट

@vadim मैं के व्यवहार पर कुछ परीक्षण कर रहा था npm installऔर यह हमेशा पैकेज के रूप में अनुमति के अनुसार निर्भरता और उन्नयन पैकेज को नवीनतम संस्करणों में बहाल करता है। इसलिए node_modulesजब तक आपको लगता है कि भ्रष्टाचारी फ़ोल्डर हटाने की आवश्यकता नहीं है। क्या कोई कारण है जो आपको लगता है कि इसे हटा दिया जाना चाहिए? हालाँकि, अगर इरादा किसी ऐसे पैकेज को हटाने का है जो विलुप्त हो रहे हैं तो आप npm pruneइसके बजाय अमल कर सकते हैं
himanshu

1
@ हिमांशु आप npm installसभी मॉड्यूल्स को संकुल में अपग्रेड कर रहे हैं । लेकिन सवाल यह है कि सभी पैकेजों को कैसे पुनर्स्थापित किया जाए । तो वे दूषित हो सकते हैं या नोड नोड्स के नवीनीकरण के बाद बाइनरी भागों को फिर से बनाने की आवश्यकता हो सकती है।
वादिम बरशेव

96

सही तरीका निष्पादित करना है npm update। यह वास्तव में शक्तिशाली कमांड है, यह लापता पैकेजों को अपडेट करता है और यह भी जांचता है कि क्या पहले से इंस्टॉल किए गए पैकेज के नए संस्करण का उपयोग किया जा सकता है।

एनपीएम के लिए परिचय पढ़ें कि आप एनपीएम के साथ क्या कर सकते हैं।


57
लेकिन अगर कोई नया पैकेज नहीं है तो यह कुछ भी नहीं करेगा, है ना? मैं कोशिश कर रहा हूँ के लिए मजबूर पुनर्स्थापना भले ही पैकेज पहले से ही नवीनतम संस्करण में है।
21

2
यदि कोई अनुपलब्ध पैकेज नहीं हैं, तो यह जाँच करेगा कि क्या यह संकुल के नवीनतम संस्करण (संकुल की निर्भरता सहित) का उपयोग कर सकता है। पैकेज में सूचीबद्ध। तो, संक्षेप में यदि संभव हो तो संकुल को अपग्रेड करेगा। लेकिन यह पुनः स्थापित नहीं होगा। यदि आप इसे कमांड का उपयोग करके करना चाहते हैं तो आप npm uninstall <package_name>विशिष्ट पैकेज को अनइंस्टॉल करने के लिए निष्पादित कर सकते हैं या npm uninstallसभी पैकेजों को अनइंस्टॉल करने के लिए निष्पादित कर सकते हैं।
हिमांशु

1
मैंने सिर्फ npm uninstallएक पैकेज को निर्दिष्ट किए बिना करने की कोशिश की, लेकिन वह एक त्रुटि फेंकता है।
21

क्या आपके पास फ़ोल्डर निर्देशिका में package.json है जहां आपने इसे निष्पादित किया है? यदि आप वैश्विक पैकेज की स्थापना रद्द कर रहे हैं, तो आपको
himanshu

1
आपके द्वारा प्रदान किया गया लिंक मृत है, क्या आप कृपया एक नया आपूर्ति कर सकते हैं? (मैंने यह पाया, लेकिन मुझे यकीन नहीं है कि यह इसे बदलने के लिए स्वीकार्य है)
मोती

62

अधिकांश समय मैं सभी नोड मॉड्यूल के पूर्ण पुनर्स्थापना को प्राप्त करने के लिए निम्नलिखित कमांड का उपयोग करता हूं (सुनिश्चित करें कि आप प्रोजेक्ट फ़ोल्डर में हैं)।

rm -rf node_modules && npm install

आप फ़ोल्डर को npm cache cleanहटाने के बाद भी चला सकते हैं यह node_modulesसुनिश्चित करने के लिए कि कोई भी निर्भरता नहीं है।


47

npmके लिए CLI कमांड को अपडेट किया installऔर --forceध्वज को जोड़ा ।

npm install --force

--force(या -f) तर्क के लिए बाध्य करेगा npmस्थानीय प्रतिलिपि डिस्क पर मौजूद है, भले ही दूरदराज के संसाधनों को लाने के लिए।

देख npm install


महान, 'git + github.com ...' के साथ भी काम करें !
टोनी बुंटर

12

आप npm में पाए गए पुनर्स्थापना मॉड्यूल का उपयोग कर सकते हैं ।

इसे स्थापित करने के बाद, आप निम्न कमांड का उपयोग कर सकते हैं:

reinstall

मैन्युअल रूप से node_modulesफ़ोल्डर को हटाने और बनाने के साथ एकमात्र अंतर npm installयह है कि यह कमांड स्वचालित रूप से npm के कैश को साफ करती है। तो, आप एक कमांड में तीन चरण प्राप्त कर सकते हैं।

अपडेट: npx reinstall विश्व स्तर पर स्थापित पैकेज के बिना (केवल npm5 + के लिए) इस कमांड को चलाने का एक तरीका है


1
@ g00glen00b मैं तो संपादित किया है यह अब हाइपरलिंक बिना उपयोगी जानकारी होती है कि
रोब

@ g00glen00b यह पूरी तरह से ठीक है; यह इसे हटाने के लिए एक उम्मीदवार नहीं बनाता है। कृपया देखें इस पोस्ट - प्रदान की कुछ उपयोगी जानकारी है कि वहाँ विशेष रूप से यह एक लिंक के साथ लघु जवाब पते, (यानी, पुस्तकालय का नाम) जब हाइपरलिंक निकाल दिया जाता है
रोब


1

विंडोज के लिए आप उपयोग कर सकते हैं

(if exist node_modules rmdir node_modules /q /s) && npm install

जो node_modulesनिर्देशिका निकालता है और npm installफिर प्रदर्शन करता है । स्थापित करने से पहले हटाने का आश्वासन दिया है कि सभी संकुल को पुनः स्थापित किया गया है।


0

नोड मॉड्यूल को फिर से स्थापित करने और उन्हें अपडेट करने के लिए इस चरण का पालन करें

भले ही नोड_मॉडल फ़ोल्डर मौजूद न हो। अब निम्नलिखित कमांड को सिंक्रोनाइज़ करें। आप "npm अपडेट" का भी उपयोग कर सकते हैं, लेकिन मुझे लगता है कि यह पसंदीदा तरीका होगा

npm outdated // not necessary to run this command, but this will show outdated dependencies

npm install -g npm-check-updates // to install the "ncu" package

ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version

npm install: will install dependencies in your package.json file.

यदि आप अपने पैकेज में अपनी निर्भरता के संस्करण के साथ ठीक हैं। किसी भी फ़ाइल को चलाने के लिए उन चरणों का पालन करने की आवश्यकता नहीं है

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