2016-02-19 13 views
11

मैं Windows 10 पर NPM संस्करण 3.6.0 और 5.6.0 संस्करण नोड चला रहा हूँ पुराना है कुछ नहीं करता है:NPM अद्यतन जी भले ही मैं संकुल

> npm version 
{ npm: '3.6.0', 
    ares: '1.10.1-DEV', 
    http_parser: '2.6.1', 
    icu: '56.1', 
    modules: '47', 
    node: '5.6.0', 
    openssl: '1.0.2f', 
    uv: '1.8.0', 
    v8: '4.6.85.31', 
    zlib: '1.2.8' } 
> 

मैं विश्व स्तर पर स्थापित NPM संकुल की एक संख्या है:

> npm ls -g --depth=0 
C:\Users\Klas\AppData\Roaming\npm 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
`-- [email protected] 

> 

अगर मैं चलाने npm outdated -g कई संकुल पुराना रूप में सूचीबद्ध हैं।

> npm outdated -g 
Package  Current Wanted Latest Location 
jspm   0.16.25 0.16.25 0.16.29 
live-server 0.9.0 0.9.0 0.9.2 
protractor  3.0.0 3.0.0 3.1.1 
tslint   3.2.2 3.2.2 3.4.0 
webpack  1.12.11 1.12.11 1.12.13 

जब मैं चलाने npm update -g यह (सेकंड के एक जोड़े के बाद) रिटर्न किसी चेतावनी या त्रुटि संदेश के बिना। हालांकि, कोई पैकेज अद्यतन नहीं किया गया है।

> npm update -g 
> 

मैं व्याख्या के रूप में this issue, npm update -g काम करना चाहिए, और शीर्ष स्तर के वैश्विक संकुल अद्यतन करना चाहिए। लेकिन यह मेरे लिए काम नहीं लग रहा है।

अगर मैं (टिप के लिए बेंजामिन कैसर के लिए धन्यवाद) चलाएँ:

> npm update -g --loglevel verbose 

मैं उत्पादन का एक बहुत मिलता है। यह सबसे प्रासंगिक प्रतीत होता है:

npm verb outdated not updating tslint because it's currently at the maximum version 
that matches its specified semver range 

मुझे अभी भी समझ में नहीं आता है। चूंकि पैकेज वैश्विक हैं, इसलिए कोई निर्दिष्ट सेमिस्टर रेंज नहीं है?

एक विशेष पैकेज पर अद्यतन चल रहा है मदद नहीं करता है या तो:

> npm update -g tslint 
> 

भी कोई फर्क एक संस्करण को निर्दिष्ट नहीं करता है:

> npm update -g [email protected] 
> 

लेकिन भले ही है कि काम किया था मैं नहीं बल्कि करने की जरूरत नहीं होगी स्पष्ट रूप से प्रत्येक पैकेज को अद्यतन करें। मेरे लिए, एक पैकेज प्रबंधक की एक प्रमुख विशेषता एक बार में सबकुछ अपडेट करना आसान बनाना चाहिए।

This issue संबंधित लगता है। लेकिन जब मैं tslint npm module को देखता हूं तो "नवीनतम" 3.4.0 लगता है। तो क्यों अपग्रेड नहीं?

+1

क्या आपने निम्न लॉग स्तर पर कुछ भी हो रहा है या नहीं, यह देखने के लिए '--loglevel verbose' ध्वज जोड़ने का प्रयास किया है? आपने जो भी कहा है, उससे आपका एनपीएम संस्करण उस आदेश को चलाने के लिए अद्यतित होना चाहिए। –

+0

धन्यवाद @ बेंजामिन कैसर, मैंने फ्लैग –

+1

को सेट करने के परिणामों के साथ अपना प्रश्न बढ़ाया है यह बहुत अजीब है, आप सही हैं कि यह वैश्विक है और इस तरह से एक सेमेस्टर नहीं होना चाहिए। मैं शायद वैश्विक पैकेजों को फिर से शुरू करने का प्रयास करूंगा। हो सकता है कि नवीनतम संस्करण (3.7.4 मुझे लगता है) –

उत्तर

10

npm -g update, ओह, बहुत अप्रत्याशित व्यवहार है। यह एक उपयुक्त कामकाज हो सकता है:

$ npm -g outdated --parseable=true | cut -d : -f 4 | xargs -n 1 npm -g install 
+0

धन्यवाद - यह एक अच्छा कामकाज है, और निश्चित रूप से वही व्यवहार करता है जिसे मैं 'npm -g अपडेट' से उम्मीद करता हूं। – lantrix

+0

अच्छा जवाब आदमी! – huachengzan

संबंधित मुद्दे