引言
我们在搭建项目的时候,通过 npm 安装的依赖模块时,package.json
文件中依赖的版本号前面会带符号 ^
,有时候我们看别人的项目时也可能会看版本前带符号 ~
,或者什么也不带,其中会有什么区别呢?而且当你的 npm 版本升级到 5.X.X 版本以上的时候,对应目录下还是自动生成一个 package-lock.json
文件(cnpm不支持package-lock.json),这个文件的作用又是什么呢。博主根据网上资料简单说明一下。
1.package.json
版本
"dependencies": {
"react": "^16.8.0"
"react": "~16.8.0",
"react": "16.8.0",
},
如上,三种方式的区分在于,项目通过 npm install 重新下载依赖包时,对于所下载的版本号的区别:
- ‘^16.8.0’ 表示安装16.x.x的最新版本,安装时不改变大版本号。
- ‘~16.8.0’ 表示安装16.8.x的最新版本,安装时不改变大版本号和次要版本号。
- ‘16.8.0’ 表示安装指定的版本号,也就是安装16.8.0版本。
我们可以通过
npm view react versions
来查看到目前我们所能获取到的所有react的版本,这里从16.8