---------------------------------------------------------------------------------
1、 package.json是干什么的 ?
包含 项目信息 列出依赖程序包以及版本号
构建具有可复制性,因此更易于与其他开发人员共享
2、package.lock.json是什么?
运行npm i的时候会根据package.json下载依赖并自动生成一个lock.json
lock文件的版本内容才是最终下载依赖的版本内容,
lock文件是锁定版本的用处,将lock文件上传服务器,只要lock文件不更新,每个环境使用的依赖包都是一致的
具体说: 由于package.json文件有些程序包版本向后兼容,导致的每次有依赖升级后 npm i都会下载最新的程序包,lockjson文件自然就会更新展示下载的依赖包的真正版本号,
3、cnpm 会比npm下载快 但是却不会生成lock.json
4、如果有lock文件 npm i的时候 就会按照 lock文件 的依赖版本号下载依赖,如果没有 才会根据package.json文件去下载文件。
5、项目中有个 .gitignore文件,那里是处理要忽略某些文件,不把某些文件进行上传git仓库的部分。(为了让依赖版本统一(开发、服务器)最好不要忽略lock文件的上传)
不忽略lock文件上传, 每次拉git仓库的代码的时候都会有lock文件, 有lock文件下载依赖就会先按照lock文件的内容下载依赖,没有则按照package.json文件的内容下载依赖
6、不忽略lock文件上传的前提下,如果需要更改下载依赖可以删除lock文件 进行npm i