मैं npm UNETET PEER DEPENDENCY चेतावनी को कैसे ठीक करूँ?


223

मैं विंडोज 10 पर हूं, नोड 5.6.0 और एनपीएम 3.6.0 के साथ। मैं अपने काम करने वाले फ़ोल्डर में कोणीय-सामग्री और एमडीए स्थापित करने की कोशिश कर रहा हूं। npm के साथ कोणीय-सामग्री mdi त्रुटियों को स्थापित करें:

+-- angular@1.5.0

+-- UNMET PEER DEPENDENCY angular-animate@^1.5.0

+-- UNMET PEER DEPENDENCY angular-aria@^1.5.0

+-- angular-material@1.0.6

+-- UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57

npm WARN enoent ENOENT: no such file or directory, open
'C:\Users\xxxxx\Desktop\ngClassifieds\package.json' 

npm WARN angular-material@1.0.6 requires a peer of
angular-animate@^1.5.0 but none was installed. 

npm WARN angular-material@1.0.6 requires a peer of angular-aria@^1.5.0
but none was installed. 

npm WARN angular-material@1.0.6 requires a peer of
angular-messages@^1.5.0 but none was installed.

AngularJS Material और MDI स्थापित करने के लिए मैं इसे कैसे हल करूं?


क्या इस प्रकार की त्रुटि किसी समस्या को पैदा करती है?
ब्लैकहॉक

रेजा के लिए नहीं, इसलिए यह देर हो चुकी है, लेकिन किसी भी अन्य के लिए ... यह कोशिश करें: एनपीएम कोणीय-सामग्री सहकर्मी पर निर्भरता
peter70

1
सामान्य तौर पर, आप हमेशा एक असमत निर्भरता को हल नहीं करना चाह सकते हैं। उदाहरण के लिए, यह कुछ-पैकेज में अन्य- package@^1.5.0 पर निर्भरता है, और आपके पास अन्य- package@2.0.0 स्थापित है, आपको संस्करण को वापस रोल करने की आवश्यकता नहीं हो सकती है। यदि आप वास्तव में नए संस्करण के साथ समस्या कर रहे हैं तो परीक्षण करना बेहतर होगा।
जॉन पैनकोविज़

जवाबों:


203

npm अब सहकर्मी निर्भरता स्थापित नहीं करता है, इसलिए आपको उन्हें मैन्युअल रूप से स्थापित करने की आवश्यकता है, बस npm installआवश्यक डिपो पर करें, और फिर मुख्य को फिर से स्थापित करने का प्रयास करें।


टिप्पणी करने के लिए उत्तर दें:

यह उस संदेश में सही है, यह कहता है कि आपको याद आ रही है

UNMET PEER DEPENDENCY angular-animate@^1.5.0 +-- 
UNMET PEER DEPENDENCY angular-aria@^1.5.0 +-- angular-material@1.0.6 +
UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57` 

तो आपको करने की आवश्यकता है npm install angular angular-animate angular-aria angular-material angular-messages mdi


क्या कोणीय-सामग्री के लिए डिप्स खोजने का कोई तरीका है ताकि मैं स्थापित कर सकूं?
रेजा

2
क्या आपको इन नई निर्भरताओं को अपने साथ जोड़ने की आवश्यकता है package.json?
0xcaff

2
@Kffinatedmonkey जो आदर्श होगा
Datsik

9
अगर आप --saveस्विच npm को निर्दिष्ट करते हैं तो @caffinatedmonkey आपके लिए पैकेज (या --save-devयदि पैकेज एक विकास निर्भरता है) को अपडेट करेगा
McGuireV10

33
npm के पूरे बिंदु के लिए यह आपके लिए उन सभी निर्भरता का प्रबंधन है? अगर मैं एक npm स्थापित करता हूं, तो बिना किसी निर्भरता के एक समूह की एक सूची प्राप्त करें, जिसे मुझे हाथ से अपने कंपोजर.जॉन फ़ाइल में मैन्युअल रूप से जोड़ना होगा, उस बिंदु पर भी npm से मुझे क्या मूल्य मिल रहा है?
chiliNUT

66

UNMET PEER DEPENDENCYत्रुटि तब डाली जाती है जब package.jsonफ़ाइल में निर्दिष्ट एक या अधिक मॉड्यूल की निर्भरता पूरी नहीं होती है। चेतावनियों को ध्यान से देखें और package.jsonनिर्भरता के सही संस्करणों के साथ फाइल को अपडेट करें ।

फिर भागो

rm -rf node_modules/
npm cache clean
npm install

यह सभी आवश्यक निर्भरता को सही ढंग से स्थापित करेगा।


3
सहकर्मी की निर्भरता क्या है
अवेलेबलर

जब आप एक पैकेज स्थापित करते हैं तो यह अन्य पैकेजों के विशिष्ट संस्करणों पर निर्भर करता है। यदि आप पैकेज का सही निर्भर संस्करण प्रदान नहीं करते हैं तो "पीयर डिपेंडेंसी" संयुक्त राष्ट्र से मिलता है। तो आपको इसे हल करने के लिए आश्रित पैकेजों के अपेक्षित संस्करण को अपडेट करने की आवश्यकता है।
जयकृष्

4
यह मेरे लिए काम नहीं किया। मुझे अभी भी एक सहकर्मी की आवश्यकता के बारे में चेतावनी मिली थी।
एडम ज़र्नर

1
स्वीकृत समाधान की तुलना में बहुत क्लीनर! यह कोड का एक सेट op की समस्या के हर संभव मामले को संभालता है, बजाय उनके पास मौजूद विशिष्ट मुद्दे के।
होल्डऑफ ह्यूंगर

npm कैश क्लीन कमांड का उपयोग त्रुटि देता है: npm @ 5 के रूप में, npm कैश भ्रष्टाचार के मुद्दों से स्वयं को ठीक करता है और कैश से निकाले गए डेटा को मान्य होने की गारंटी है। यदि आप यह सुनिश्चित करना चाहते हैं कि सब कुछ सुसंगत है, तो इसके बजाय 'npm कैश सत्यापन' का उपयोग करें। npm ईआरआर! यदि आप सुनिश्चित हैं कि आप संपूर्ण कैश हटाना चाहते हैं, तो इस आदेश को --force के साथ पुन: चलाएँ।
कोडमोंकी

30

मेरे मामले में सभी निर्भरताएँ पहले से ही थीं। कृपया एनपीएम को उस स्थिति में अपडेट करें क्योंकि यह दुर्घटनाग्रस्त हो गया था। इसने मेरी समस्या हल कर दी।

npm install -g npm

मेरे लिए काम किया। UNMET PEER DEPENDENCY typescriptस्थापित करने का प्रयास करते समय मुझे त्रुटि मिली थी tslint। एक बार npm को अपडेट करने के लिए, पहले टाइपस्क्रिप्ट स्थापित करना था और फिर tslint स्थापित करना था।
रवीलाम

किसी कारण से, मुझे इसे एक से अधिक बार चलाना पड़ा, जब तक कि इसकी सभी निर्भरताएं अपडेट नहीं हुईं।
कोडर

इसने मेरे लिए npm को तोड़ दिया और त्रुटियों का एक समूह बन गया।
जैक

14

npm-install-peers ने मेरे लिए काम किया।

npm install -g npm-install-peers

1
मेरे लिए काम नहीं किया: "इस पैकेज में कोई सहकर्मी नहीं है"। हालाँकि, मेरे पास कई संदेश हैं जैसे "npm ERR! पीयर डिप मिसिंग: @ एंगुलर / कॉमन @ ^ 5.0_ ^ 6.0.0, @ agm / core @ 1.0.0-beta.3 द्वारा आवश्यक
अल्मीर कैम्पोस

2
यह पैकेज केवल वर्तमान पैकेज के प्रत्यक्ष पीयर डिपों को स्थापित करता है और पैकेज के डिपो (बच्चों के साथियों) के पीयर डिपों को नहीं मरता है।
एलेक्स स्क्रीपनीक

7

इस त्रुटि के सबसे संभावित कारणों में से एक यह हो सकता है कि आपने अपने पैकेज में पुराने संस्करण को परिभाषित किया हो। इस समस्या को हल करने के लिए, पैकेज में संस्करणों को बदलें। उन npm से मेल खाने के लिए शिकायत करें।

एक बार किया, npm स्थापित और वॉइला चलाने !!


6

यह उत्तर सभी मामलों को लागू नहीं करता है, लेकिन यदि आप केवल टाइप करके त्रुटि को हल नहीं कर सकते हैं npm install , तो यह कदम मदद कर सकता है।

मान लीजिए कि आपको यह त्रुटि मिली है।

UNMET PEER DEPENDENCY packageA@4.2.0

npm WARN packageB@3.3.0 requires a peer of packageA@^3.1.0 but none was installed.

इसका मतलब है कि आपने पैकेजए का संस्करण 4.2.0 स्थापित किया है, लेकिन पैकेजबी@3.3.0 को पकागेए के संस्करण 3.xx की आवश्यकता है। ( ^ का स्पष्टीकरण )

तो आप इस त्रुटि को 3.xx में packageA को अपग्रेड करके हल कर सकते हैं, लेकिन आमतौर पर आप पैकेज को डाउनग्रेड नहीं करना चाहते हैं।
अच्छी खबर यह है कि कुछ मामलों में, पैकेजब सिर्फ पैकेजए के साथ नहीं रख रही है और पैकेजब का अनुरक्षक पैकेजए के सहकर्मी की निर्भरता को 4.xx तक बढ़ाने के लिए कड़ी मेहनत कर रहा है
। उस स्थिति में, आप जांच कर सकते हैं कि पैकेजब का उच्च संस्करण है या नहीं। npm या github में packageA के संस्करण 4.2.0 की आवश्यकता है।

उदाहरण के लिए, रिलीज़ पृष्ठ पर जाएंयहां छवि विवरण दर्ज करें

अक्सर आप इस तरह निर्भरता के बारे में ब्रेकिंग परिवर्तन पा सकते हैं।

packageB v4.0.0-beta.0

BREAKING CHANGE
package: requires packageA >= v4.0.0

यदि आपको रिलीज़ पृष्ठ पर कुछ नहीं मिलता है, तो पेज जारी करने के लिए जाएं और कीवर्ड जैसे मुद्दे को खोजें peer। आपको उपयोगी जानकारी मिल सकती है।

यहां छवि विवरण दर्ज करें

इस बिंदु पर, आपके पास दो विकल्प हैं।

1) उस संस्करण को अपग्रेड करें जिसे आप
2 चाहते हैं ) कुछ समय के लिए त्रुटि छोड़ दें, स्थिर संस्करण जारी होने तक प्रतीक्षा करें।

यदि आप विकल्प
1 चुनते हैं: कई मामलों में, संस्करण में latest टैग नहीं है, इसलिए स्थिर नहीं है। इसलिए आपको यह जांचना होगा कि इस अपडेट में क्या बदलाव हुआ है और सुनिश्चित करें कि कोई भी चीज जीत नहीं पाएगी।

यदि आप विकल्प 2 चुनते हैं:
यदि संस्करण 3 से 4 तक पकागे का उन्नयन तुच्छ है, या यदि पकागेब के अनुरक्षक ने पकागेए के संस्करण 4 का परीक्षण नहीं किया है, लेकिन कहते हैं कि यह कोई समस्या नहीं है, तो आप त्रुटि छोड़ने पर विचार कर सकते हैं।

दोनों ही मामलों में, यह पूरी तरह से परीक्षण करने के लिए सबसे अच्छा है अगर यह कुछ भी नहीं तोड़ता है।

अंत में, यदि आप जानते हैं कि आपको मैन्युअल रूप से ऐसा क्यों करना है, तो यह लिंक अच्छी तरह से समझाता है।


3

ठीक है, तो मैं लंबे समय से यह पता लगाने की कोशिश कर रहा था। यहाँ परमाणु विकल्प है, जब आप अन्य सभी तरीकों से थक चुके हैं।

  • अपने पीसी पर एक नया फ़ोल्डर बनाएं।
  • कोणीय की एक नई स्थापना डाउनलोड करें - मैंने इस गाइड का उपयोग किया: https://coursetro.com/posts/code/55/How-to-Install-an-Angular-4-App
  • इसे चलाएं, सुनिश्चित करें कि यह काम करता है
  • फिर अपने पैकेज.जॉन फ़ाइल से एक-एक करके अपनी निर्भरताएं स्थापित करें
  • प्रत्येक स्थापित होने के बाद इसे चलाएं

जब आप कर रहे हैं, और यह अभी भी काम करता है, अपने वास्तविक कोड को इस नई परियोजना में आयात करें। किसी भी संकलन त्रुटियों को कोणीय कारणों के नए संस्करण को ठीक करें।

Thats यह मेरे लिए क्या किया .. wertf पता लगाने की कोशिश कर के 1 घंटे rework बनाम 6 घंटे गलत था .. काश मैं इसे शुरू करने के लिए इस तरह से किया ..


ओपी
Edric

3

दिया गया उत्तर हमेशा काम नहीं करेगा। यदि यह आपकी समस्या को ठीक नहीं करता है। सुनिश्चित करें कि आप अपने में सही प्रतीक का उपयोग कर रहे हैं package.json। यह उस सिरदर्द को ठीक करने के लिए बहुत महत्वपूर्ण है। उदाहरण के लिए:

warning " > @angular/compiler-cli@5.2.7" has incorrect peer dependency "typescript@>=2.4.2 <2.7".
warning " > tsickle@0.25.6" has incorrect peer dependency "typescript@>=2.4.2 <2.6".

तो मेरे टाइपस्क्रिप्ट को 2.4.2 और 2.6 सही के बीच होना चाहिए?

इसलिए मैंने अपनी टाइपस्क्रिप्ट लाइब्रेरी का उपयोग "typescript": "^2.7"करने से उपयोग करने के लिए बदल दिया "typescript": "^2.5"। सही लगता है?

गलत।

इसका ^मतलब है कि आप npm का उपयोग "typescript": "2.5"कर "2.6"या "2.7"आदि के साथ ठीक हैं ...

यदि आप यह जानना चाहते हैं कि इसका क्या अर्थ है ^और ~देखें: पैकेज। Json में tilde (~) और caret (^) के बीच क्या अंतर है?

इसके अलावा आपको यह सुनिश्चित करना होगा कि पैकेज मौजूद है। शायद "typescript": "2.5.9"पैकेज संख्याओं पर कोई नज़र नहीं है । वास्तव में सुरक्षित होने के लिए ~या ^तो हटा दें या यदि आप इसका मतलब नहीं पढ़ना चाहते हैं।


इस स्पष्टीकरण के लिए धन्यवाद। यदि मैं दो पुस्तकालयों का उपयोग करता हूं, जहां पहला (जैसे library-one) एक सहकर्मी package@<2.6और दूसरा ( library-two) एक सहकर्मी का उपयोग करता है package@>2.7? फिर क्या मैं packageअपने कोडबेस के दो संस्करणों से निपटने के लिए समाप्त हो जाऊंगा? मुझे कैसे पता चलेगा कि जब मैं उपयोग करता library-oneहूं तो मुझे इसका उपयोग package@2.5.9इस बीच करना होगा जब मैं उपयोग करता library-twoहूं तो मुझे इसके साथ उपयोग करना होगा package@2.7.1?
टॉनिक्स

2

आज उपलब्ध Angular 2 rc.7 , और मुझे rxjs@5.0.0-beta.12UNMET PEER DEPENDENCY के साथ भी ऐसी ही समस्या थी ।

आप हैं, तो मेरे जैसे, बस प्रतिस्थापित @angular/...rc.6करने के लिए @angular/...rc.7- यह पर्याप्त नहीं है। क्योंकि, उदाहरण के लिए, @angular/routerकोई rc.6संस्करण नहीं है ।

इस मामले में, त्वरित समीक्षा में बेहतर पैकेज package.json


ओपी
Edric

-6

आप विश्व स्तर पर UNMET निर्भरता स्थापित करके हल कर सकते हैं।

उदाहरण: npm स्थापित -g @ कोणीय / आम @ 4.4.6

हर एक को स्थापित करें। मेरे लिए यह काम किया।


क्या यह वास्तव में सबसे अच्छा समाधान है, सोचा? परियोजना निर्भरता के लिए वास्तविक "समस्या" को अनदेखा करने के लिए विश्व स्तर पर स्थापित करना?
qx3

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