2013-12-22 128 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过时