介绍
package-lock.json是项目在'npm install'时生成的一份文件,用来记录当前状态下实际安装的各个npm package的 具体来源和版本号。
作用
因为npm是用于管理package之间依赖关系的管理器,它允许开发者在package.json中标出项目对npm各库包的依赖。
举个栗子:
"dependencies": {
"@types/node": "^8.0.33",
},
这里面的 向上标号^是定义了向后(新)兼容依赖,指如果 types/node的版本是超过8.0.33,并在大版本号(8)上相同,就允许下载最新版本的 types/node库包,例如实际上可能运行npm install时候下载的具体版本是8.0.35
以后直接改 package.json 文件相应模块的版本号,再执行npm install不会更新了(好可怕),你只能手动用npm install xxx@yy指定版本号来安装,然后它会自动更新 package-lock.json 文件。直接执行npm install时,如果不存在 package-lock.json 文件,它会根据安装模块后的 node_modules 目录结构来创建;如果已经存在 package-lock.json 文件,则它只会根据 package-lock.json 文件指定的结构来下载模块,并不会理会 package.json 文件。
禁止生成这个文件的方法
npm config set package-lock false