【问题标题】:NPM caret doesn't bring in newest minor versionNPM 插入符号不引入最新的次要版本
【发布时间】:2018-09-13 04:37:24
【问题描述】:

在我的 package.json 中,我的依赖项之一是... "@packageXXX": "^0.7.0",

当我执行“npm outdated”时,我看到... @packageXXX 当前:0.7.0 想要:0.7.0 最新:0.8.0

当我执行“npm i”时 它不会安装最新的次要版本“0.8.0”

我的理解是插入符号应该更新到最新的次要版本,但事实并非如此。有人可以解释我做错了什么吗?

【问题讨论】:

    标签: javascript npm


    【解决方案1】:

    0.x.x 就是这种情况,因为前导零表示包尚未进入“稳定”版本。在您的包达到 1.x.x 之前,您需要手动进行这些更新(并且要小心...您的包还不稳定,这意味着可能会发生重大更改!)。

    https://semver.org/

    主要版本零 (0.y.z) 用于初始开发。什么都可以 随时改变。公共 API 不应该被认为是稳定的。

    【讨论】:

    • 我看到了我依赖“^1.0.1”并且 1.0.2 可用的确切内容,但它只安装 1.0.1...你如何解释?跨度>
    • @Michael 你的包管理员犯了一个错误(或者你是)。如果你不使用 Yarn,我强烈推荐它。
    【解决方案2】:

    根据nodejs documentation,包^0.7.0 -> 不会被npm update 更新为0.8.0

    ^:它只会做不改变最左边的非零数字的更新。如果写^0.13.0,运行npm update时,可以更新到0.13.1、0.13.2等,但不能更新到0.14.0以上。如果写^1.13.0,运行npm update时可以更新到1.13.1、1.14.0等,但不会更新到2.0.0或以上。

    【讨论】:

      猜你喜欢
      • 2018-08-22
      • 2016-05-02
      • 2017-01-10
      • 2019-04-15
      • 2017-03-23
      • 2019-06-03
      • 2015-04-22
      • 2019-06-26
      • 2017-01-01
      相关资源
      最近更新 更多