gpt4 book ai didi

angular - 为什么我在 package-lock.json 中得到不同版本的依赖项?

转载 作者:行者123 更新时间:2023-12-03 08:21:01 25 4
gpt4 key购买 nike

我正在开发一个 angular 10 应用程序。为什么我在 package-lock.json 中看到的依赖项版本与我在 package.json + cmd :npm install 中放入的版本不同

示例:

  • package.json

    “依赖项”:{"下划线": "^1.12.0",....}

  • 然后我吃午餐npm install

  • 包锁

    “下划线”:{"版本": "1.13.1",“已解决”:“https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz”,“完整性”:“sha512-...”},

为什么在 package.json 中它是版本 1.12.0 而在另一个 json 中它是 1.13.1 ????

最佳答案

您可以查看完整的semver有关更多详细信息,请参阅文档,但是当您编写 ^1.12.0 时,您实际上是在编写一个版本范围,而不是单个版本。

简短引用:

  • ^1.12.0 => 最新版本为 1.x.x
  • ~1.12.0 => 最新版本为1.12.x
  • 1.12.0 => 完全1.12.0

根据 semver MAJOR.MINOR.PATCH 约定,具有相同 MAJOR 编号的任何版本都不包含重大更改,因此您通常会看到软件包版本用 ^ 范围指定;您将获得最新的更新并且您的代码不会损坏!

但是,与 package.json 不同,package-lock.json 始终包含安装的软件包的确切版本,以......好吧......锁定它们。这就是为什么您的 package-lock.json 可以显示比您在 package.json 中指定的版本更高的版本。

当然,如果出于某种原因这不可行并且您需要坚持使用更具体的版本,则可以使用其他选择器之一。

关于angular - 为什么我在 package-lock.json 中得到不同版本的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67827805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com