package-lock.json的作用

当我们install 项目依赖的时候,会自动生成package-lock.json

虽然package.json文件有标识依赖的版本号,但是只能固定大版本

看下面的例子

"dependencies": {
  "@types/node": "^8.0.33",
},

这里面 向上标号^是定义了向后(新)兼容依赖,如果 types/node的版本是超过8.0.33,并在大版本号(8)上相同,就允许下载最新版本的 types/node库包,例如实际上可能运行npm install时候下载的具体版本是8.0.35。 

 

因此npm最新的版本就开始提供自动生成package-lock.json功能,为的是让开发者知道只要你保存了源文件,到一个新的机器上、或者新的下载源,只要按照这个package-lock.json所标示的具体版本下载依赖库包,就能确保所有库包与你上次安装的完全一样

 

那如果我们安装时的包有bug,后面需要更新怎么办?

在以前可能就是直接改package.json里面的版本,然后再npm install了,但是5版本后就不支持这样做了,因为版本已经锁定在package-lock.json里了,所以我们只能npm install xxx@x.x.x  这样去更新我们的依赖,然后package-lock.json也能随之更新

posted @ 2022-07-13 09:56  小僵尸  阅读(142)  评论(0编辑  收藏  举报