我从另一个项目复制了package.json,现在想将所有依赖项都升级到最新版本,因为这是一个新项目,如果出现问题,我不介意进行修复。
最简单的方法是什么?
我现在知道的最好的方法是npm info express version手动运行每个包,然后手动更新package.json。肯定有更好的办法。
npm info express version
{ "name": "myproject", "description": "my node project", "version": "1.0.0", "engines": { "node": "0.8.4", "npm": "1.1.65" }, "private": true, "dependencies": { "express": "~3.0.3", // how do I get these bumped to latest? "mongodb": "~1.2.5", "underscore": "~1.4.2", "rjs": "~2.9.0", "jade": "~0.27.2", "async": "~0.1.22" } }
19年5月1日更新 :六年后,我仍在维护npm-check-updates作为该问题的综合解决方案。请享用!
看起来npm-check-updates是现在做到这一点的唯一方法。
npm i -g npm-check-updates ncu -u npm install
在npm <3.11上:
只需将每个依赖项的版本更改为*,然后运行即可npm update --save。( 注意: 在最新(3.11)版本的npm中已损坏)。
*
npm update --save
之前:
"dependencies": { "express": "*", "mongodb": "*", "underscore": "*", "rjs": "*", "jade": "*", "async": "*" }
后:
"dependencies": { "express": "~3.2.0", "mongodb": "~1.2.14", "underscore": "~1.4.4", "rjs": "~2.10.0", "jade": "~0.29.0", "async": "~0.2.7" }
当然,这是更新依赖项的钝器。如您所说,如果项目为空且没有任何中断,那就很好。
另一方面,如果您在一个更成熟的项目中工作,则可能要在升级之前验证依赖项中是否没有重大更改。
要查看哪些模块已过时,只需运行npm outdated。它将列出具有较新版本的所有已安装依赖项。
npm outdated