What's the difference between tilde(~) and caret(^) in package.json?

后端 未结 19 2087
温柔的废话
温柔的废话 2020-11-22 00:31

After I upgraded to latest stable node and npm, I tried npm install moment --save. It saves the entry in the package.json

19条回答
  •  一生所求
    2020-11-22 00:45

    ~ Tilde:

    • ~ freezes major and minor numbers.
    • It is used when you're ready to accept bug-fixes in your dependency, but don't want any potentially incompatible changes.
    • The tilde matches the most recent minor version (the middle number).
    • ~1.2.3 will match all 1.2.x versions, but it will miss 1.3.0.
    • Tilde (~) gives you bug fix releases

    ^ Caret:

    • ^ freezes the major number only.
    • It is used when you're closely watching your dependencies and are ready to quickly change your code if minor release will be incompatible.
    • It will update you to the most recent major version (the first number).
    • ^1.2.3 will match any 1.x.x release including 1.3.0, but it will hold off on 2.0.0.
    • Caret (^) gives you backwards-compatible new functionality as well.

提交回复
热议问题