Bower enables me to specify version requirements for packages using the following syntax:
"dependencies": {
"<name>": "<version>",
},
But I have not been able to find what is the syntax to use for the <version>
. I know that I can specify versions to be:
">1.0.0"
">=1.0.0"
"1.0.0 - 2.0.0"
. I also know that there is a common version syntax containing the tilde: "~1.0.0"
. But I am not sure what it means and whether it is the same as "=1.0.0"
.
I am also interested to know whether I am able to specify multiple non-consecutive versions, such as exactly 1.0.3
plus versions greater than 1.5.0
, etc...
This question is related to
node.js
bower
semantic-versioning
You can also use the latest
keyword to install the most recent version available:
"dependencies": {
"fontawesome": "latest"
}
Based on semver, you can use
Hyphen Ranges X.Y.Z - A.B.C
1.2.3-2.3.4
Indicates >=1.2.3 <=2.3.4
X-Ranges
1.2.x
1.X
1.2.*
Tilde Ranges
~1.2.3
~1.2
Indicates allowing patch-level changes or minor version changes.
Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4
Allows changes that do not modify the left-most non-zero digit in the [major, minor, patch] tuple
^1.2.x
(means >=1.2.0 <2.0.0)^0.0.x
(means >=0.0.0 <0.1.0)^0.0
(means >=0.0.0 <0.1.0)If there is no patch number, ~
is equivalent to appending .x
to the non-tilde version. If there is a patch number, ~
allows all patch numbers >= the specified one.
~1 := 1.x
~1.2 := 1.2.x
~1.2.3 := (>=1.2.3 <1.3.0)
I don't have enough points to comment on the accepted answer, but some of the tilde information is at odds with the linked semver documentation: "angular": "~1.2"
will not match 1.3, 1.4, 1.4.9. Also "angular": "~1"
and "angular": "~1.0"
are not equivalent. This can be verified with the npm semver calculator.
Bower uses semver syntax, but here are a few quick examples:
You can install a specific version:
$ bower install jquery#1.11.1
You can use ~ to specify 'any version that starts with this':
$ bower install jquery#~1.11
You can specify multiple version requirements together:
$ bower install "jquery#<2.0 >1.10"
Source: Stackoverflow.com