package-lock.json文件的主要内容
package-lock.json 文件会保存 node_modules 中所有包的信息,包括:
- 精确版本 version
- 下载依赖的地址(如:淘宝镜像会写死在该文件中)
- 依赖关系 dependencies
- 完整性哈希
如下图:

用以记录当前状态下实际安装的各个模块的具体来源和版本号。这样 npm install 时速度就会提升。
为什么需要package-lock.json文件
当项目中已有 package-lock.json 文件,在安装项目依赖时,将以该文件为主进行解析安装指定版本依赖包,而不是使用 package.json 来解析和安装模块。
因为 package.json 指定的 版本不够具体,而 package-lock.json 为 每个模块及其每个依赖项指定了版本,位置和完整性哈希,所以 每次的安装都是相同的。
package-lock.json 文件作用
有以下两点:
当删除
node_module目录时,想通过npm install恢复所有包时,提升下载速度。锁定版本号,防止自动升级新版本。
正因为有了 package-lock.json 文件锁定版本号,所以当你执行 npm install 的时候,node 不会自动更新 package.json 文件中的模块,必须用 npm install packagename(自动更新小版本号) 或者 npm install packagename@x.x.x(指定版本号) 来进行安装才会更新,package-lock.json 文件中的版本号也会随着更新。
生成 package-lock.json
npm install --package-lock-only
参考:
https://blog.csdn.net/m0_73531461/article/details/136399322