^ 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
上一篇: 如何判断ember.js和ember
下一篇: ^在package.json依赖版本中