我从另一个项目中复制了package.json,现在想将所有依赖项都升级到最新版本,因为这是一个新项目,如果出现问题,我不介意修复。
最简单的方法是什么?
我知道的最好的方法是运行npm info express版本,然后手动更新package.json中的每个依赖项。一定有更好的办法。
{
"name": "myproject",
"description": "my node project",
"version": "1.0.0",
"dependencies": {
"express": "^3.0.3", // how do I get these bumped to latest?
"mongodb": "^1.2.5",
"underscore": "^1.4.2"
}
}
有关纱线特定的解决方案,请参阅本堆栈溢出线程。
看来npm检查更新是现在实现这一点的唯一方法。
npm i -g npm-check-updates
ncu -u
npm install
在npm<3.11时:
只需将每个依赖项的版本更改为*,然后运行npm-update-save。(注:在最近(3.11)版本的npm中损坏)。
之前:
"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过时即可。它将列出所有已安装的具有较新版本的依赖项。
有关特定于纱线的解决方案,请参阅此StackOverflow答案。