相关资料
https://www.cnblogs.com/cangqinglang/p/8336754.html
https://blog.51cto.com/u_15069443/4321297
package-lock.json文件的作用,总结成一句话就是:锁定安装时的npm包的版本号及包里面的子依赖的版本号, 以保证项目其他人在使用 npm install 时下载的依赖包都是一致的。
根据官方文档,这个package-lock.json 是在 `npm install`时候生成的一份文件,用以记录当前状态下实际安装的各个npm的具体来源和版本号。
由于packag.json只单纯记录项目的依赖, 而没有记录依赖里的子依赖, 并且依赖之间的版本号又没有明确固定, 导致无法保证依赖环境一致。而package-lock.json文件的出现就是解决上述问题, 它会详细的记录项目依赖的版本号及依赖的子依赖的版本号。
值得注意的是package.json中修改版本号会影响package-lock.json, 并且package.json比package-lock.json的优先级高。比如:package.json中less版本为^1.0.0 , package-lock.json中less版本为2.1.2, 则最终安装的less版本为1.7.5, package-lock.json中less即其依赖的包将被从2.1.2退回到1.7.5的状态。
为了保证项目的环境依赖一致, 在项目移动时需要同时复制 package.json 和 package-lock.json 两个文件。