^ in package.json dependency version

What does the ^ symbol mean in the version of a dependency in package.json?

I couldn't find it in the docs.

For example:

"dependencies": {
    "grunt": "^0.4.4",
    ...
}

I found an answer here:

The caret, on the other hand, is more relaxed. It will update you to the most recent major version (the first number). ^1.2.3 will match any 1.xx release including 1.3.0 , but will hold off on 2.0.0 . npm's semantic versioning parser clarifies the distinction:

~1.2.3 := >=1.2.3-0 <1.3.0-0 "Reasonably close to 1.2.3".
^1.2.3 := >=1.2.3-0 <2.0.0-0 "Compatible with 1.2.3".

― isaacs/node-semver (emphasis added)

The relevant points from isaacs/node-semver are:

  • ^1.2.3 := >=1.2.3-0 <2.0.0-0 Compatible with 1.2.3.
    When using caret operators, anything from the specified version (including prerelease) will be supported up to, but not including, the next major version (or its prereleases). 1.5.1 will satisfy ^1.2.3 , while 1.2.2 and 2.0.0-beta will not.

  • ^0.1.3 := >=0.1.3-0 <0.2.0-0 Compatible with 0.1.3.
    0.xx versions are special: the first non-zero component indicates potentially breaking changes, meaning the caret operator matches any version with the same first non-zero component starting at the specified version.

  • ^0.0.2 := =0.0.2 Only the version 0.0.2 is considered compatible

  • 链接地址: http://www.djcxy.com/p/27652.html

    上一篇: 如何判断ember.js和ember

    下一篇: ^在package.json依赖版本中