What's the difference between tilde(~) and caret(^) in package.json?

后端 未结 19 1880
温柔的废话
温柔的废话 2020-11-22 00:31

After I upgraded to latest stable node and npm, I tried npm install moment --save. It saves the entry in the package.json

19条回答
  •  臣服心动
    2020-11-22 00:53

    Tilde ~ matches minor version, if you have installed a package that has 1.4.2 and after your installation, versions 1.4.3 and 1.4.4 are also available if in your package.json it is used as ~1.4.2 then npm install in your project after upgrade will install 1.4.4 in your project. But there is 1.5.0 available for that package then it will not be installed by ~. It is called minor version.

    Caret ^ matches major version, if 1.4.2 package is installed in your project and after your installation 1.5.0 is released then ^ will install major version. It will not allow to install 2.1.0 if you have ^1.4.2.

    Fixed version if you don't want to change version of package on each installation then used fixed version with out any special character e.g "1.4.2"

    Latest Version * If you want to install latest version then only use * in front of package name.

提交回复
热议问题