当前位置: 首页 > 知识库问答 >
问题:

如何将package.json中的每个依赖项更新到最新版本?

姚俊贤
2023-03-14

我从另一个项目复制了package.json,现在希望将所有依赖项都更新到它们的最新版本,因为这是一个新项目,如果它坏了,我不介意修复它。

最简单的方法是什么?

我知道的最好的方法是运行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"
  }
}

对于纱线的特定解决方案,请参阅此StackOverflow线程。

共有2个答案

龙俊美
2023-03-14

npm-check-updates是一个使用所有依赖项的最新版本自动调整package.json的实用程序

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

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

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

$ npx npm-check-updates -u
$ npm install 
仇阳州
2023-03-14

看起来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。它将列出任何已安装的具有较新版本可用的依赖项。

 类似资料:
  • 问题内容: 我从另一个项目复制了package.json,现在想将所有依赖项都升级到最新版本,因为这是一个新项目,如果出现问题,我不介意进行修复。 最简单的方法是什么? 我现在知道的最好的方法是手动运行每个包,然后手动更新package.json。肯定有更好的办法。 19年5月1日更新 :六年后,我仍在维护npm-check-updates作为该问题的综合解决方案。请享用! 问题答案: 看起来np

  • 我有一个react应用程序,其依赖项已弃用。为了让它工作,我必须将依赖项更新到更新(但稳定)的版本。 根据这个stakoverflow线程,要将package.json中的依赖项更新到最新版本,npm-check-更新是npm的最佳选项。然而,我使用纱线进行包装管理。纱线中是否有相当于npm检查更新。因此,我使用单个包管理器来管理我的依赖关系。

  • 虽然在处理未解决的依赖项时存在许多问题,但似乎没有更新这些依赖项的通用方法。 您需要手工为每一个检查maven central,还是有一些漂亮的工具可以自动将它们更新到最新版本?

  • 我试图为我们的项目定义一个发布过程。 我能够使用maven发布插件来完成发布,但我必须手动更新所有内部快照依赖项,以在准备之前发布版本,然后在发布之后再次返回快照版本。 我使用了maven版本插件,它检测我的公司依赖项,即快照构建,并列出要使用的正确版本构建。 我尝试了maven发布插件,准备目标,并抱怨我的依赖项中的SNAPSHOT版本。 是否有一种方法可以将快照依赖项更新到最新发布的版本,然后

  • MVNRepository通常为每个依赖项列出“版本”和“更新”。 如果我发布自己的包,如何指定“更新”版本 Maven在解决传递依赖时使用了哪个依赖项?所以如果我的包依赖于包A,它依赖于包B,版本=1.0,更新=1.1。我会得到哪个版本的B?

  • 告诉Gradle以下内容的最简单方法是什么: 检索“junit”依赖项并获取其最新版本。 管理Maven和Ivy仓库对我来说有点新鲜。我尝试了以下步骤,它们导致错误: > 编写,并按以下方式设置存储库: 尝试使用Spring Source Ivy仓库: 也许我误解了什么。为什么获取最新版本的依赖项会如此困难?