2013-12-22 161 views
11

我要檢查,如果我的模塊是最新NPM過時,NPM更新不起作用

我做的:sudo npm outdated

,我有這導致

Package    Current Wanted Latest Location 

oauth     0.9.9 0.9.9 0.9.10 twit > oauth 
require-all   0.0.3 0.0.3 0.0.8 mysql > require-all 
bignumber.js   1.0.1 1.0.1 1.3.0 mysql > bignumber.js 
request    2.27.0 2.27.0 2.30.0 facebook-chat > node-xmpp > node-xmpp-client > request 
through    2.2.7 2.2.7 2.3.4 facebook-chat > node-xmpp > brfs > through 

那麼我這樣做: sudo npm update 但如果我重複sudo npm outdated我有同樣的結果... 也如果我做例如 信息:

Package    Current Wanted Latest Location 
oauth     0.9.9 0.9.9 0.9.10 twit > oauth 

然後更新

sudo npm update oauth 

然後

sudo npm outdated oauth 

我的結果:

Package Current Wanted Latest Location 
oauth  0.9.9 0.9.9 0.9.10 twit > oauth 
+0

你有沒有把特定的軟件包版本在你的'包.json'文件(例如'〜0.11.8'而不是'*')?如果依賴關係太嚴格,我懷疑NPM會更新你的軟件包。 – CedX

+0

不,我還沒有編輯文件.. – Barno

回答

18

你的項目實際上是跟上時代的,因爲它可以現在。

NPM不會簡單地安裝Latest版本的包,除非that version is also Wanted

產生的場「想」是根據在的package.json中指定的版本的最新版本,[...]

,併爲每個你上市,WantedCurrent版本已經匹配。

Package    Current Wanted ... 

oauth     0.9.9 0.9.9 ... 
require-all   0.0.3 0.0.3 ... 
bignumber.js   1.0.1 1.0.1 ... 
request    2.27.0 2.27.0 ... 
through    2.2.7 2.2.7 ... 

試圖強迫oauth其目前的0.9.10Latest,例如,實際上被認爲invalidtwit has 0.9.9 listed exactly

"dependencies": { 
    "oauth": "0.9.9" 
}, 
$ npm ls 
... 
└─┬ [email protected] 
    └── [email protected] invalid 

npm ERR! invalid: [email protected] ...\node_modules\twit\node_modules\oauth 
+0

感謝您的回覆! twit使用oauth 0.9.9,但這種依賴性是在0.9.10版本,這是不更新,直到Twit不需要它..強制oauth 0.9.10版本可能會導致錯誤......這是你的意思嗎? – Barno

+1

@Barno是的。 'twit'將不得不更新它的''依賴項''以允許'oauth @ 0.9.10'安裝在它下面。不過,由於'twit'是一個開源項目,作者可能會受到更新的請求,前提是所有測試都通過了。 –

+0

我從不使用sudo與npm,我應該嗎? –

-1

檢查您的package.json可能是你的包或在那裏。 嘗試使用--save安裝包,並嘗試將工作

例如: NPM安裝[email protected] --save 現在就來試試 NPM過時