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

其他回答

如果使用npm 5和节点8,请尝试以下命令

npm更新--保存

如果您使用的是yarn,yarn升级交互是一个非常时髦的工具,可以让您查看过时的依赖项,然后选择要更新的依赖项。

更多理由使用纱线代替npm。呵呵。

我真的很喜欢npm升级的工作方式。这是一个简单的命令行实用程序,它可以遍历所有依赖项,让您查看当前版本与最新版本的比较,并根据需要进行更新。

以下是在项目根目录中运行npm升级后发生的情况的屏幕截图(在package.json文件旁边):

对于每个依赖项,您可以选择升级、忽略、查看更改日志或完成该过程。到目前为止,这对我来说效果很好。

要清楚,这是一个第三方软件包,需要在命令生效之前安装。它不附带npm本身:

npm install -g npm-upgrade

然后从具有package.json文件的项目的根目录:

npm-upgrade

如果您碰巧使用Visual Studio代码作为IDE,那么这是一个有趣的小扩展,可以使package.json的更新成为一个一键过程。

注意:更新package.json文件中的包后,运行npm更新以安装新版本。

版本镜头

GitLab报告

如果您不想安装全局npm检查更新,您只需运行:

node -e "const pk = JSON.parse(require('fs').readFileSync('package.json', 'utf-8'));require('child_process').spawn('npm', ['install', ...Object.keys(Object.assign({},pk.dependencies, pk.devDependencies)).map(a=>a+'@latest')]).stdout.on('data', d=>console.log(d.toString()))"