主要解决问题场景:
前景:比如你的packgae.json的依赖是"react": "^17.0.2",因为有标识符^,所以如果react模块有在17大版本下更新的小版本17.0.3,npm install时候会自动安装17下的最新版本17.0.3
现象:在前景情况下,你本地是"react": "^17.0.2",如果这时候react更新"react": "^17.0.3",别人npm install的时候,安装就是"react": "^17.0.3"。这样导致你们版本不一致,可能引起一些相关错误。
解决:
package-lock.json:简单来说就是锁定安装模块的版本号。
就是在npm install的时候,记录各个模块的版本信息和下载路径,这样别人拉项目npm install时候, 就会依据packgae-lock.json去安装"react": "^17.0.2",保证大家依赖一致并且安装模块速度也能提高。
注意点:
1.npm安装,没有package-lock.json文件,如果npm版本是5+,会自动生成package-lock.json。有的话会默认依据该文件进行安装而不是package.json。cnpm不支持(忽略)依据package-lock.json文件安装模块,默认依赖package.json进行安装。
2.需要更新版本,得去更新package.json里的模块版本,然后npm install,才能同步更新到package-lock.json
3.该功能基于npm5+