繁体   English   中英

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

[英]How to update package.json to latest version of each package?

在您将其标记为重复之前,我已经搜索了类似的问题,但没有一个对我有帮助。

目前这是我尝试过的:

  1. 删除 package-lock.json 文件。
  2. 删除节点模块。
  3. 运行npm update
  4. 运行npm install

这将始终允许我在 node_modules 中安装最新(次要)版本的软件包,并更新 package-lock.json 文件。 但是,package.json 文件不会更新。

例如,我的时刻是 package.json 表示为“时刻”:“^2.27.0”。 运行上述步骤后,package-lock.json 将更新为 "moment": { "version": "2.29.1", ...} 但 package.Z466DEEC76ECDF5FCA6D38571F6324D5.2 仍将是 "^24.7"。

这样做的正确方法是什么? Running npm install moment updates the package.json to become "moment": "^2.29.1" but its quite absurd if I have to run npm install for every single dependency?

编辑感谢选择的答案,我意识到我实际上不需要更新我的 package.json,因为它显示的是兼容版本,而不是确切的版本。

package.json不会被npm install更新。 其中包含有关依赖项和兼容版本列表。

"moment": "^2.27.0"表示allowed moment version: 2.27.0 <= version < 3.0.0allowed moment version = 2.27.0 So when you run npm install , npm will install the latest version of major version 2 (In your case, 2.29.1 ), But package.json will not updated by that command. 因为它不包含installed version ,它包含compatible version

但是, npm install moment命令确实install the latest version of moment ,所以package.json更新了最新版本,因为"^2.27.0"低于"^2.29.1" ."

无论如何,如果你想更新你的 package.json,你可以使用npm-check-updates (又名ncu )。 看到这个答案 如果您不想运行ncu ,您可以随时使用"latest" (例如: "moment": "latest" )安装最新版本。

npm outdated列出了所有可以使用当前、通缉和最新版本号更新的软件包。

  • current 是当前安装的版本
  • 想要的是最后一个小版本更新
  • latest 是最新的主要版本更新

要将所有软件包更新到最新版本,只需执行以下操作:

npm outdated | awk 'NR>1 {print $1"@"$4}' | xargs npm install

它只是调用 npm 安装每个过时的 package 的最新版本。

强烈建议检查您的包的更改packages.json只是为了确保所有更改都符合预期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM