平时开发大家知道package-lock.json的作用嘛?

5 篇文章 0 订阅
1 篇文章 0 订阅

说明

package-lock.json会为npm修改node_modules树或的任何操作自动生成package.json。
这是官方的说法
用一句简单的话说,就是锁定安装时包的版本号,并要传到git,以保证其他人在npm install时其他开发成员的依赖都能保证一致。

什么是package-lock.json?

根据官方文档,package-lock.json是在npm install时生成的一份文件,用以记录当前状态下实际安装的每个npm package的具体信息,来源、版本号等。
这种代码应该都不陌生吧

"axios": {
	"version": "0.17.1",
	"resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz/",
	"integrity": "sha7hihiu2FI898u9jkhkjGfftas08=",
	"requires": {
		...
	}
}

这就是package-lock.json里面某个包的具体信息。

package-lock.json有什么作用呢?

npm是一个用于管理package之间依赖关系的管理器,它允许开发者在package.json中间标出自己项目对npm每个包的依赖。你可以选择标明自己所需要的包的版本号等。
npm最新的版本(5.0以上)就开始提供自动生成package-lock.json功能,为了让开发者知道只要保存了源文件,到一个新的机器上、或者新的下载源,只要按照这个package-lock.json所标示的具体版本下载依赖库包,就能确保所有包与你上次安装的完全一样。

补充

package.json文件只能锁定大版本,就是版本号第一位,并不能锁定小版本,每次npm install都是拉取的该大版本下最新版本,为了稳定考虑几乎是不敢随意升级包,有可能会导致多出来很多工作量,测试/适配等,所以package-lock.json文件出来了,当每次安装一个依赖的时候就锁定在你安装的这个版本。
如果安装的包有bug,后面需要更新怎么办?
在以前可能就是直接改package.json里面的版本,再npm install,但是5版本就不支持这样做了,因为版本已经锁在package-lock.json里面了,所以只能npm install 包名@版本号,这样更新依赖,然后package-lock.json会自动更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值