我在Windows 10上运行npm版本3.6.0和节点版本5.6.0:
> 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
+-- bower@1.7.7
+-- generator-gulp-angular@1.0.2
+-- generator-gulp-angular-subtask@0.9.1
+-- gulp@3.9.1
+-- jspm@0.16.25
+-- karma-cli@0.1.2
+-- live-server@0.9.0
+-- protractor@3.0.0
+-- tsd@0.6.5
+-- tslint@3.2.2
+-- typescript@1.7.5
+-- webpack@1.12.11
+-- webpack-dev-server@1.14.1
`-- yo@1.6.0
>如果我运行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我还是不太明白。因为包是全局的,所以没有指定的semver范围?
对特定程序包运行更新也无济于事:
> npm update -g tslint
>即使不指定版本也不会有任何区别:
> npm update -g tslint@3.4.0
>但是,即使这样做起作用了,我也不想显式地更新每个包。对我来说,包管理器的一个主要特性应该是让一次更新所有内容变得容易。
This issue听起来是相关的。但当我查看tslint npm module时,它的“最新”版本似乎是3.4.0。那么为什么不升级呢?
发布于 2016-06-14 18:47:12
npm -g update有非常意想不到的行为。这可能是一种合适的解决方法:
$ npm -g outdated --parseable=true | cut -d : -f 4 | xargs -n 1 npm -g installhttps://stackoverflow.com/questions/35508396
复制相似问题