Tilde (~) vs Caret (^) in package.json file
In this tutorial, we are going to learn about the difference between tilde (~) and caret (^) in the package.json file.
When we install a new package using npm install <package-name>
command, it will add a reference inside package.json
file by prefixing the package version with tilde ~
or caret ^
.
Example:
npm install express
Now, inside package.json npm will add it like this.
"dependencies": {
"express": "^4.17.1"
}
The version has three numbers (4.17.1
) which are major.minor.patch based on semantic versioning.
Tilde (~)
If the version number is prefixed with a tilde (~), it will only update the patch version in the future, without updating the major and minor versions when we run a npm update
command.
~2.13.4
means npm will only update the releases from 2.13.4 to <2.14.0 .
Caret (^)
If the version number is prefixed with caret (^), it will only update the minor and patch versions in the future, without updating the major version when we run a npm update
command.
^4.17.1
means npm will only update the releases from 4.17.1 to <5.0.0 .