如何将package.json中的每个依赖项更新为最新版本?
我从另一个项目复制了package.json,现在想要将所有依赖关系都打包到最新版本中,因为这是一个全新的项目,我不介意解决它的问题。
最简单的方法是什么?
  我现在知道的最好方法是运行npm info express version然后手动为每个npm info express version更新package.json。  一定会有更好的办法。 
{
  "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"
  }
}
我现在是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中被打破)。 
之前:
  "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-check-updates是一个实用工具,可以自动调整package.json和所有依赖关系的最新版本 
请参阅https://www.npmjs.org/package/npm-check-updates
$ npm install -g npm-check-updates
$ ncu -u
$ npm install 
TLDR; (更新了更新的NPM版本)
由于这些答案是最初编写的,因此情况有所改变。
  npm 2+: npm outdated + npm update + npm shrinkwrap 
  较早的npm: npm-check-updates包+ npm shrinkwrap 
一定要收缩包装,否则可能会导致死亡项目。 我有一天拿出一个项目,它不会运行,因为我的代价都过时了/更新/一团糟。 如果我收缩包装,npm会安装我所需要的。
细节
对于目前为止很好奇的人来说,这是我推荐的:
  使用npm-check-updates或npm outdated建议最新版本。 
# `outdated` is part of newer npm versions (2+)
$ npm outdated
# If you agree, update.  
$ npm update
#       OR
# Install and use the `npm-check-updates` package.
$ npm install -g npm-check-updates
# Then check your project
$ npm-check-updates
# If you agree, update package.json.
$ npm-check-updates -u
然后做一个干净的安装(没有rm我有一些依赖警告)
$ rm -rf node_modules
$ npm install 
  最后,使用npm shrinkwrap将精确版本保存到npm-shrinkwrap.json npm shrinkwrap 
$ rm npm-shrinkwrap.json
$ npm shrinkwrap
  现在, npm install现在将在npm-shrinkwrap.json使用精确版本 
  如果你检查npm-shrinkwrap.json到git中,所有安装将使用完全相同的版本。 
这是一种从开发(所有更新,所有时间)转换到生产(没有人接触)的方式。
npm过时了
NPM-检查更新功能
npm收缩包装
上一篇: How do I update each dependency in package.json to the latest version?
