我从另一个项目中复制了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"
  }
}

有关纱线特定的解决方案,请参阅本堆栈溢出线程。


当前回答

我在上面的最佳答案中发现的唯一警告是,它将模块更新到最新版本。这意味着它可能会更新为不稳定的alpha版本。

我会使用npm检查更新实用程序。我的团队使用了这个工具,它通过安装稳定的更新有效地工作。

如Etienne所述:安装并运行以下程序:

$ npm install -g npm-check-updates
$ npm-check-updates -u
$ npm install 

其他回答

使用*作为最新版本的版本,包括不稳定版本使用最新版本作为最新稳定版本的版本定义使用LatestStablePackages使用最新的稳定版本号修改package.json

下面是一个示例:

"dependencies": {
        "express": "latest"  // using the latest STABLE version
    ,   "node-gyp": "latest"    
    ,   "jade": "latest"
    ,   "mongoose": "*" // using the newest version, may involve the unstable releases
    ,   "cookie-parser": "latest"
    ,   "express-session": "latest"
    ,   "body-parser": "latest"
    ,   "nodemailer":"latest"
    ,   "validator": "latest"
    ,   "bcrypt": "latest"
    ,   "formidable": "latest"
    ,   "path": "latest"
    ,   "fs-extra": "latest"
    ,   "moment": "latest"
    ,   "express-device": "latest"
},

npm check updates是一个实用程序,它使用所有依赖项的最新版本

看见https://www.npmjs.org/package/npm-check-updates

$ npm install -g npm-check-updates
$ ncu -u
$ npm install 

[编辑]如果你有一个现代版本的npm,一种稍微不那么侵入性(避免全局安装)的方法是:

$ npx npm-check-updates -u
$ npm install 

如果你想通过一个漂亮的(终端)交互式报告界面使用一种温和的方法,我建议使用npm检查。

它不是一个锤子,给了你更多关于依赖关系更新的知识和控制。

为了让你尝一尝等待的滋味,这里有一张截图(从git页面中截取,用于npm检查):

从npm 5.2.0版开始,有一种方法可以在一行中运行,而无需在全局npm注册表或本地应用程序中安装任何附加包。这可以通过利用与npm捆绑的新npx实用程序来实现。(单击此处了解更多信息。)

在项目的根目录中运行以下命令:

npx npm-check-updates -u && npm i

这会很有帮助npm过时|awk‘{if(NR>1){print$1“@”$4}}‘|xargs npm i