स्वचालित रूप से एनपीएम पीयर निर्भरता कैसे स्थापित करें?


274

उदाहरण के लिए, जब मैं Angular2 स्थापित करता हूं:

npm install --save angular2
temp@1.0.0 /Users/doug/Projects/dougludlow/temp
├── angular2@2.0.0-beta.3 
├── UNMET PEER DEPENDENCY es6-promise@^3.0.2
├── UNMET PEER DEPENDENCY es6-shim@^0.33.3
├── UNMET PEER DEPENDENCY reflect-metadata@0.1.2
├── UNMET PEER DEPENDENCY rxjs@5.0.0-beta.0
└── UNMET PEER DEPENDENCY zone.js@0.5.11

npm WARN angular2@2.0.0-beta.3 requires a peer of es6-promise@^3.0.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of es6-shim@^0.33.3 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of reflect-metadata@0.1.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of rxjs@5.0.0-beta.0 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of zone.js@0.5.11 but none was installed.

क्या कोई जादू का झंडा है जिसे मैं npm पर पारित कर सकता हूं जो सहकर्मी निर्भरताएं स्थापित करेगा? मैं एक खोजने में सक्षम नहीं है ... यह मैन्युअल रूप से कॉपी करने और सहकर्मी निर्भरता को कॉपी करने और मुझे सुनिश्चित करने के लिए कठिन है कि मेरे पास सही संस्करण हैं।

दूसरे शब्दों में, मुझे नहीं करना है:

npm install --save angular2@2.0.0-beta.3 es6-promise@^3.0.2 es6-shim@^0.33.3 reflect-metadata@0.1.2 rxjs@5.0.0-beta.0 zone.js@0.5.11

बेहतर तरीका क्या है?


क्या आपने उस समस्या को पहले ही हल कर लिया है? मैं एक ही मुद्दा कोणीय 2 स्थापित कर रहा हूँ। यहां तक ​​कि -g फ्लैग के साथ मैन्युअल रूप से es6- वादे को स्थापित करने और npm इंस्टाल -g angular2 के पुनः प्रयास करने के बाद भी मुझे वही त्रुटि मिलती है / 5 unmet peer निर्भरता की चेतावनी es-वादा, es6-shim, प्रतिबिंबित-मेटाडेटा, rxjs और zone.js
nttakr

4
@nttakr - हाँ, सटीक संस्करणों को स्थापित करना जो यह चाहते हैं कि सहकर्मी निर्भरता चेतावनी से छुटकारा पा लें। आप उन्हें विश्व स्तर पर (-जी ध्वज के साथ) स्थापित नहीं करना चाहते हैं। आप उन्हें स्थानीय रूप से (-S ध्वज) स्थापित करना चाहते हैं, लेकिन जैसा कि मैंने कहा, उन्हें सटीक संस्करण (यानी: angular2@2.0.0-beta.3आवश्यकताएं es6-promise@^3.0.2) होना चाहिए । हालांकि, मैं जानना चाहता हूं कि क्या कोई कमांड / झंडा है जो स्वचालित रूप से सहकर्मी निर्भरता स्थापित करता है।
डगलस लुडलो

@DouglasLudlow आप एनपीएम के किस संस्करण का उपयोग कर रहे हैं?
पेट

@peteb: npm -v=>3.5.3
डगलस लुडलो

मेरे पास एक ही मुद्दा है, और मैंने समाधान पैदावार नहीं पाई है ...
9

जवाबों:


178

सहकर्मी निर्भरता की स्वचालित स्थापना को स्पष्ट रूप से npm 3 के साथ हटा दिया गया था, क्योंकि यह हल करने की कोशिश की तुलना में अधिक समस्याएं पैदा करता है। आप इसके बारे में यहाँ उदाहरण के लिए पढ़ सकते हैं:

तो नहीं, दिए गए कारणों के लिए, आप उन्हें npm 3 के साथ स्वचालित रूप से स्थापित नहीं कर सकते।


4
हाँ, मैंने यह देखा: github.com/npm/npm/issues/6565 ... मैं बस उम्मीद कर रहा था कि आप अभी भी वैकल्पिक रूप से उन्हें ध्वज या कुछ के साथ स्थापित कर सकते हैं। लगता है कि मुझे एक मुद्दा या कुछ और खोलना होगा।
डगलस लुडलो

157
आप इस तरह की समस्या से कैसे निपटेंगे? मैं एक एनपीएम विशेषज्ञ नहीं हूं, इसलिए जब मैंने पढ़ा "एक्स को एक सहकर्मी की आवश्यकता होती है, लेकिन कोई नहीं मिला", मैं खुद से पूछता हूं, "कौन सा सहकर्मी?" और "मैं कैसे सब कुछ फिर से काम कर सकता हूं?" क्या कोई प्रक्रिया है? क्या आप x और y के कोड में खुदाई करते हैं जब तक आपको पता नहीं चलता कि क्या गायब है? एक बार जब आपको पता चलता है कि क्या गायब है, तो आप आगे क्या करते हैं? धन्यवाद!
डेन कैंक्रो

81
आह, यह एक अंग्रेजी समस्या है: "x के लिए एक सहकर्मी की आवश्यकता होती है, लेकिन कोई भी स्थापित नहीं किया गया था" होना चाहिए "x को सहकर्मी, y की आवश्यकता है, लेकिन y स्थापित नहीं था"। मैंने इसे "x के लिए y के साथियों में से एक की आवश्यकता के रूप में समझा, लेकिन वह सहकर्मी स्थापित नहीं किया गया था और हम आपको यह नहीं बता रहे हैं कि आपको किस साथी की आवश्यकता है"।
डेन कैंक्रो

1
इसके अलावा अगर मैं मैन्युअल रूप से सूचीबद्ध सहकर्मी निर्भरता स्थापित करता हूं, तो मैं उन्हें extraneousपैकेज के रूप में प्राप्त करता हूं
plsnoban

3
"विलुप्त" हैं क्योंकि आपको उन्हें पैकेज निर्भरता में जोड़ने की आवश्यकता है।
डिनोबॉफ

37

मैंने पैकेज को फिर से लिखकर हल किया। सटीक मानों के साथ चेतावनी के बारे में थे:

npm WARN angular2@2.0.0-beta.3 requires a peer of es6-shim@^0.33.3 but none was installed.

package.json: "es6-shim": "^ 0.33.3",

npm WARN angular2@2.0.0-beta.3 requires a peer of reflect-metadata@0.1.2

package.json: "प्रतिबिंबित-मेटाडाटा": "0.1.2",

Delete node_modules directory

npm install

15
शायद एक npm cache clean, npm installनोड_मॉड्यूल्स को पोंछने से बेहतर हो सकता है? मैं हमेशा नोड_मॉड्यूल्स को हटाने से बचता हूं, मुझे यह पता लगाना पसंद है कि निर्देशिका को उड़ाने के बजाय समस्या क्या है।
ब्रूनो

मुझे नहीं लगता कि यह लोगों के लिए सिर्फ काम करने के लिए एक बहुत ही सुरक्षित विचार है। उनके संघर्षों को बिगड़ने के उच्च परिवर्तन हैं: ऐसा कोड होना जो लाइब्रेरी से मेल नहीं खाता हो।
ज़ूमलार

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

22

इस परिदृश्य में मददगार चीट कोड और कुछ अन्य ...

Y UNMET PEER DEPENDENCY @ कोणीय / सामान्य @ 4.0.2

Y UNMET PEER DEPENDENCY @ कोणीय / संकलक @ 4.0.2

Y UNMET PEER DEPENDENCY @ कोणीय / कंपाइलर-क्लाई @ 4.0.2

Y UNMET PEER DEPENDENCY @ कोणीय / कोर @ 4.0.2

Y UNMET PEER DEPENDENCY @ कोणीय / प्रपत्र @ 4.0.2

Y UNMET PEER DEPENDENCY @ कोणीय / http @ 4.0.2

Y UNMET PEER DEPENDENCY @ कोणीय / प्लेटफ़ॉर्म-ब्राउज़र @ 4.0.2

Y UNMET PEER DEPENDENCY @ कोणीय / प्लेटफ़ॉर्म-ब्राउज़र-डायनेमिक @ 4.0.2>

  1. अपनी त्रुटि को अपने कोड संपादक में कॉपी और पेस्ट करें।
  2. अपने क्यूरर के साथ अवांछित भाग को हाइलाइट करें। इस मामले में 'ET UNMET PEER DEPENDENCY'
  3. प्रेस कमांड + d समय का एक गुच्छा।
  4. प्रेस को दो बार हटाएं । (यदि आपने Press ├── UNMET PEER DEPENDENCY ’को गलती से दबा दिया है तो प्रेस स्पेस।)
  5. एक बार दबाओ। 'Npm इंस्टॉल' जोड़ें
  6. एक बार दबाओ। जोड़ें - save
  7. अपने सामान को वापस क्ली में कॉपी करें और चलाएं

एनपीएम स्थापित करें .2 @ कोणीय / प्लेटफ़ॉर्म-ब्राउज़र @ 4.0.2 @ कोणीय / प्लेटफ़ॉर्म-ब्राउज़र-डायनेमिक @ 4.0.2-save


8
विकल्प --saveस्पष्ट रूप से npm 5.0.0 के रूप में आवश्यक नहीं है: stackoverflow.com/a/19578808/12484
जॉन श्नाइडर

12

प्रोजेक्ट npm-install-peersसाथियों का पता लगाएगा और उन्हें स्थापित करेगा।

चूंकि v1.0.1यह package.jsonस्वचालित रूप से वापस लिखने का समर्थन नहीं करता है , जो अनिवार्य रूप से यहां हमारी आवश्यकता को हल करेगा।

कृपया फ्लाइट में जारी करने के लिए अपना समर्थन जोड़ें: https://github.com/spatie/npm-install-peers/issues/4


36
दौड़ने पर, इसने मुझे यह संदेश दिया। This package doesn't seem to have any peerDependencies
थाबंग

2
मेरा भी यही संदेश है।
थिबॉल्ट बोर्सियर

7
जैसा कि मैं इसे समझता हूं, पंजीकृत में npm-install-peersस्थापित करेगा । यह निर्भरता जैसे स्थापित नहीं करेगा । peerDependenciespackage.jsonpeerDependenciesangular2
26:18

हां, दूसरी @drizzd टिप्पणी के लिए: npm-install-peersकेवल "peerDependencies"आपके प्रोजेक्ट के पैकेज में सूचीबद्ध को स्थापित करने के लिए है। json । आप आप "peerDependencies"में से प्रत्येक node_modules/<package>/package.jsonफ़ाइलों में सूचीबद्ध स्थापित करने की कोशिश कर रहे हैं , न कि आपके प्रत्यक्ष सहकर्मी निर्भरता।
विल फार्ले

5

जब मैं एक npm पैकेज विकसित कर रहा था, तो मैंने इन त्रुटियों का अनुभव किया peerDependencies। मुझे यह सुनिश्चित करना था कि किसी के रूप peerDependenciesमें भी सूचीबद्ध किया गया था devDependencies। परियोजना विश्व स्तर पर स्थापित पैकेजों का स्वचालित रूप से उपयोग नहीं करेगी।


यह एक साफ समाधान है, जैसा कि केवल 'निर्भरता' को जोड़ना कुछ अनाड़ी है!
Ashot

0

यार्न स्थापित करें फिर चलाएं

यार्न ग्लोबल ऐड-इन-पीअरडेप्स


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