by Sai gowtham

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 .

Top Udemy Courses

JavaScript - The Complete Guide 2020 (Beginner + Advanced)
JavaScript - The Complete Guide 2020 (Beginner + Advanced)
26,545 students enrolled
52 hours of video content
View Course
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
221,520 students enrolled
44 hours of video content
View Course
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
114,575 students enrolled
21 hours of video content
View Course