एनपीएम इंस्टॉल क्यों कहता है कि मेरे पास असंगत निर्भरताएं हैं?


404

मेरे पास एक नोड पैकेज है। जब मैं npm installपैकेज रूट से चलता हूं , तो यह चीजों का एक गुच्छा स्थापित करता है, लेकिन फिर कई त्रुटि संदेश प्रिंट करता है जो इस तरह दिखता है:

npm WARN unmet निर्भरता / उपयोगकर्ता / seanmackesey / google_drive / code / एक्सप्लोर / जनरेटर / node_modules / findup-sync / node_modules / glob के लिए ग्रेसफुल-fs@~1.2.0.0 'की आवश्यकता है, लेकिन लोड होगा

मैं वास्तव में क्या npm installकरता है के बारे में भ्रमित होना चाहिए । यदि यह एक निर्भरता का पता लगाता है, तो क्या इसे स्थापित नहीं करना चाहिए? किस परिस्थिति में यह मुझे इस तरह से त्रुटि संदेश देता है, और मैं निर्भरता को कैसे हल कर सकता हूं?

जवाबों:


397

मेरा मानना ​​है कि यह इसलिए है क्योंकि निर्भरता संकल्प थोड़ा टूटा हुआ है, https://github.com/npm/npm/issues/1341#issuecomment-20634348 देखें

निम्नलिखित संभव समाधान हैं:

  1. मैन्युअल रूप से शीर्ष-स्तरीय मॉड्यूल स्थापित करने की आवश्यकता होती है, जिसमें बिना निर्भरता वाले सम्‍मिलित होते हैं: npm install findup-sync@0.1.2

  2. अपने पैकेज को पुन: संरचना करें। सभी उच्च-स्तरीय मॉड्यूल रखें (तल पर अन्य मॉड्यूल के लिए निर्भरता के रूप में कार्य करता है)।

  3. npm installकमांड को फिर से चलाएँ।

Npm की समयावधि या कुछ और के कारण सभी पैकेज को डाउनलोड करने में विफलता के कारण समस्या हो सकती है।

नोट: आप विफल संकुल को मैन्युअल रूप से और साथ ही प्रयोग करके स्थापित कर सकते हैं npm install findup-sync@0.1.2

दौड़ने से पहले npm install, निम्न चरणों का पालन करने से मदद मिल सकती है:

  • प्रयोग करके नोड_मॉड्यूल्स निकालें rm -rf node_modules/
  • Daud npm cache clean

कभी-कभी नोड_मॉड्यूल्स को हटाना ’क्यों आवश्यक है? जब एक नेस्टेड मॉड्यूल के दौरान स्थापित करने में विफल रहता है npm install, तो बाद में npm installउन लापता नेस्टेड निर्भरता का पता नहीं लगाएगा।

यदि ऐसा है, तो कभी-कभी यह उन नीडिंत मॉड्यूलों के शीर्ष-स्तरीय निर्भरता को हटाने और npm installफिर से चलने के लिए पर्याप्त होता है । देख


22
नोड मॉड्यूल को हटाने और कैश को साफ करने से यह मेरे लिए काम कर गया।
MarkoHiel

4
'node_modules' को हटाकर, 'npm cache clean' चला रहा है, और फिर 'npm install' को चलाने से मेरा मुद्दा ठीक हो गया है। मुझे तीन बार 'npm_install' चलाना पड़ा, जब तक कि मुझे त्रुटियों के बिना सभी निर्भरताएं नहीं मिल गईं।
हेंड्रिक्स

2
यदि npm cache cleanपहुँच कारणों से काम नहीं करता है, तो प्रयास करें sudo npm cache clean
सोरोश

12
@ सोशो नेत्रहीन सिर्फ सूडो को उन चीजों में जोड़ते हैं जो सही काम नहीं करते हैं उन्हें जादुई रूप से ठीक नहीं करते हैं, बस इसका मतलब है कि आप नहीं जानते कि क्या चल रहा है।
एडगर अरौटियूनियन

5
कभी npm के लिए अन्य "समाधान" में rm r नोड_मॉड्यूल्स क्यों शामिल हैं? और ऐसा क्यों है कि अधिकांश मामलों में यह वास्तव में एकमात्र विकल्प है? यह बिलकुल नहीं है कि मैं एक पैकेज मैनेजर को कैसे काम
करूँ

83

यह मेरे साथ तब हुआ जब वाईफ़ाई एक के दौरान नीचे चला गया npm install। हटाने node_modulesऔर इसे फिर से चलाने के लिए npm installतय किया।


26
और कोशिश करो npm cache clean
ijse

5
नोड को पुनर्स्थापित करना शायद आवश्यक नहीं है, लेकिन ऐसा करने npm cache cleanऔर हटाने के बीच node_modules, इस सलाह ने मेरे लिए काम किया।
रिचलाइट

@RichLitt, हाँ करना npm cache cleanमेरे लिए पर्याप्त नहीं था, मुझे node_modules"इंस्टॉल" के दौरान नेटवर्क विफल होने के बाद काम करने के लिए इसे निकालने के लिए भी निकालना पड़ा ।
मार्क टॉमलिन

मैं उलझन में हूं कि किस node_modulesनिर्देशिका को हटाया जाए? मुझे त्रुटि के साथ समान समस्या है/usr/local/lib/node_modules/npm/node_modules/read-installed/node_modules/readdir-scoped-modules requires graceful-fs@'^4.1.2'
wuliwong

1
@wuliwong शीर्ष स्तर एक।
जियोन

33

मैंने इन कमांड लाइनों का उपयोग करके समस्या को ठीक किया

  • $ rm -rf node_modules/
  • $ sudo npm update -g npm
  • $ npm install

हॊ गया!


5
Sudo NPM अद्यतन जी NPM चलाने के बाद, मेरी NPM बेकार गाया गया था, में कुछ भी परिणाम को स्थापित करने के किसी भी प्रयास को "! NPM ERR मॉड्यूल नहीं खोजा जा सका 'पढ़ने के लिए पैकेज-json'" im इस नीचे वोट करने के लिए जा रहा
MichaelB

इसने मेरे और दूसरे लोगों के लिए काम किया, हो सकता है कि आपको दूसरी समस्या हो। विश्व स्तर पर मॉड्यूल रीड-पैकेज- sudo npm install -g read-package-json
जोंस को

8
चेतावनी: आपको sudo का उपयोग नहीं करना चाहिए npm, इसके बजाय यह सुझाव दिया जाता है कि निर्देशिका npm की अनुमतियाँ या स्वामित्व बदलने के लिए भी लिखना चाहता है।
Sgnl

1
वहां "npm कैश क्लीन" भी जोड़ना चाहते हैं
सिकंदर मिल्स

1
sudoNpm के साथ उपयोग न करें
अनुदान दें

11

एनपीएम को नवीनतम संस्करण में अपग्रेड करना इससे बहुत मदद कर सकता है। उपरोक्त विधिवत उत्तर यह कहना सही है कि निर्भरता प्रबंधन थोड़ा टूट गया है, लेकिन ऐसा लगता है कि यह मुख्य रूप से पुराने संस्करणों के लिए है।

आदेश npm listआपको सभी स्थापित की सूची देता है node_modules। जब मैंने संस्करण 1.4.2 से संस्करण 2.7.4 में उन्नत किया, तो कई मॉड्यूल जो पहले ध्वजांकित किए WARN unmet dependencyगए थे, अब इस तरह के रूप में नोट नहीं किए गए हैं।

Npm को अपडेट करने के लिए, आपको npm install -g npmMacOSX या लिनक्स पर टाइप करना चाहिए । विंडोज पर, मैंने पाया कि नोड्ज इंस्टॉलर को फिर से डाउनलोड करना और फिर से चलाना एनपीएम को अपडेट करने का एक अधिक प्रभावी तरीका था।


मुझे CentOS 7 रेपो में वितरित npm संस्करण के साथ भी यही समस्या थी। मैंने नोड.जेएस से नवीनतम एनपीएम संस्करण स्थापित किया है, और समस्या गायब हो गई है, इसलिए मुझे लगता है कि आपका अधिकार, यह एक पुराने संस्करण के साथ एक मुद्दा हो सकता है।
एलुआन केरील-सम-

9

उपरोक्त उत्तर node_modulesनिर्देशिका को हटाने के बाद भी पूरी तरह से मेरी मदद नहीं कर सके ।

नीचे कमांड ने मुझे आखिरकार मदद की:

npm config set registry http://registry.npmjs.org/

ध्यान दें कि यह असुरक्षित HTTP कनेक्शन पर नोड मॉड्यूल को खींचता है।

Src: https://stackoverflow.com/a/13119867/4082503


इससे मुझे मदद मिली और साथ ही साथ मेरा मेजबान यातायात को पुनर्निर्देशित कर रहा था।
डिमिग्युएल

1
@dimgl जानकर अच्छा लगा :)
विनय वेमुला

1
@Dejel क्या आपने अन्य उत्तरों की भी कोशिश की। आपको npm installकई बार और / या मैन्युअल रूप से कुछ नोड पैकेजों को एक-एक करके चलाना पड़ सकता है ।
विनय वेमुला

4

हर के लिए -- UNMET PEER DEPENDENCY, पूर्व के लिए। -- UNMET PEER DEPENDENCY rxjs@5.0.0-rc.2, उस निर्भरता को npm install --save rxjs@5.0.0-rc.2तब तक स्थापित करें जब तक आपके पास कोई और न हो UNMET DEPENDENCIES

शुभ लाभ।


1
मुझे एक ही त्रुटि के साथ छोड़ देता है जिसमें एक नया भी शामिल है:ERR! code 1
राउटर वनरॉक

1
@ रूटरवैनहर्क आप कृपया कोशिश कर सकते हैं rm -rf node_modules, फिर npm cache cleanऔर npm install। यदि यह अभी भी काम नहीं करता है, तो मैं आपको फिर से rm -rf node_modules, फिर npm i -g yarnऔर फिर से सुझाव देता हूं yarn installयार्न प्रबंधन के लिए काफी अच्छा है node_modules। शुभ लाभ।
आकाश

1
हाँ, क्या peerDependenciesहै। आपको संस्करण की सचेत पसंद पर धकेलने के लिए।
कामाफेदर

3

मैं npm listUNMET DEPENDENCY के रूप में सूचीबद्ध सभी पैकेज चलाता और स्थापित करता हूं

उदाहरण के लिए:

├── UNMET DEPENDENCY css-loader@^0.23.1
npm install css-loader@^0.23.1


2

इसने मेरे लिए इसे हल किया:

  1. package.jsonत्रुटियों के अनुसार, संस्करण संख्याओं को ठीक करें;
  2. निकालें node_modules( rm -rf node_modules);
  3. रेरून npm install

इन चरणों को तब तक दोहराएं जब तक कि अधिक त्रुटियां न हों।


1

समान नस में कोई चीज, मैं एक और कदम जोड़ूंगा।

ध्यान दें कि npm संस्करण> 1.4.9 पर, 'npm install', devD dependencies को स्थापित करता है। पहले मौजूदा मॉड्यूल और कैश निकालने का प्रयास करें:

remove node_modules $ rm -rf node_modules/
run $ npm cache clean

फिर कोशिश करो:

npm install --dev
npm update --dev

यह कम से कम पुनरावर्ती निर्भरता समाधान को हल करेगा।


6
--देव ध्वज क्या है?
अलेक्जेंडर मिल्स

1

- देवर निर्भरता को फिर से स्थापित करना (और हमेशा के लिए इसका रन ..) संस्करण के अंतर को हल करने में कैसे मदद कर सकता है?

आप नोड_मॉडल फ़ोल्डर को हटाने का प्रयास कर सकते हैं, फिर npm कैश को साफ़ कर सकते हैं और फिर 'npm i' चला सकते हैं


1

जब मैं प्रतिक्रियाशील सीएलआई स्थापित कर रहा था तो मेरे पास एक समान मुद्दा था। मुझे यकीन नहीं /node_modulesथा कि मैं यहाँ कौन सी निर्देशिका को पढ़ने के बाद हटाने वाला हूँ। मैं आखिरकार बस भागा

npm update -g

और उसके बाद पैकेज को स्थापित करने में सक्षम था।


1

मैं एक स्वचालित परिनियोजन प्रणाली पर काम करने की कोशिश कर रहा था जो चलती है npm install, इसलिए इनमें से बहुत सारे समाधान मेरे लिए एक स्वचालित फ़ाइनेशन में काम नहीं करेंगे। मैं हटाने / पुनः बनाने की स्थिति में नहीं था node_modules/और न ही मैं आसानी से Node.js संस्करण बदल सकता था।

इसलिए मैंने दौड़ना समाप्त कर दिया npm shrinkwrap - npm-shrinkwrap.jsonफ़ाइल को मेरी परिनियोजन बंडल में जोड़ना , और वहाँ से इंस्टॉल चलाना। कि मेरे लिए समस्या तय हो गई; 'हेल्पर' के रूप में सिकुड़ा हुआ फ़ाइल के साथ, npm सही संकुल खोजने और उन्हें मेरे लिए स्थापित करने में सक्षम हो रहा था। (श्रिंकव्रप में अन्य विशेषताएं भी हैं, लेकिन मुझे इस विशेष मामले में इसकी आवश्यकता थी)।


1

मुझे इस समस्या का सामना करना पड़ा जब मैं प्रतिक्रिया पैकेज स्थापित कर रहा था और यह मेरे लिए काम कर रहा था: npm install --save <package causing this error>



1

npm installयदि वे पूर्व में पूर्व निर्धारित नहीं हैं, तो सभी पैकेज स्थापित npm-shrinkwrap.jsonकर सकते हैं, लेकिन पैकेज की उपेक्षा कर सकते हैं package.json

यदि आपके पास प्रोजेक्ट है npm-shrinkwrap.json, तो सुनिश्चित करें कि आप npm shrinkwrapइसे फिर से बनाने के लिए चलाते हैं , हर बार जब आप जोड़ते / हटाते / बदलते हैं package.json


0

अपने कोणीय संस्करण के बारे में ध्यान रखें, यदि आप कोणीय 2.xx के तहत काम करते हैं तो शायद आपको कोणीय 4.xx में अपग्रेड करने की आवश्यकता है

कुछ निर्भरताओं को कोणीय 4 की आवश्यकता होती है

यहां कोणीय 4 स्थापित करने या अपनी परियोजना को अपडेट करने के लिए एक ट्यूटोरियल है।


0

4.0.0 तक अपडेट किया जा रहा है

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

लिनक्स / मैक पर:

npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save 

विंडोज पर:

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save

फिर जो भी एनजी सर्व या एनपीएम स्टार्ट कमांड आप सामान्य रूप से उपयोग करते हैं उसे चलाएं, और सब कुछ काम करना चाहिए।

यदि आप एनिमेशन पर भरोसा करते हैं, तो अपनी जड़ BrowserAnimationsModuleसे नया आयात करें । इसके बिना, आपका कोड संकलित और चला जाएगा, लेकिन एनिमेशन एक त्रुटि को ट्रिगर करेगा। आयात से नए पैकेज से पदावनत कर रहे थे, उपयोग आयात@angular/platform-browser/animationsNgModule@angular/core

import { trigger, state, style, transition, animate } from '@angular/animations';.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.