package-lock.json 的作用,如果项目中没有的解决方案

package-lock.json作用:是将使用的库的版本锁定,如果下次再安装依然使用这些版本的库

当开发者根据package.json安装依赖时,文件中声明的依赖版本号不是具体的,而是向新兼容下载的(下载主版本最新的版本)。
package-lock.json 是在 npm install时候生成一份文件,用来记录当前状态下实际安装的各个npm package的具体来源和版本号。
当项目中其他开发者或一个新的环境,或新的下载源,重新安装依赖时,目录下包含这个文件,就会锁定安装时依赖的来源和版本号,保证每个开发者安装的依赖都是一样的。

在工作中我们经常会碰到的场景是同事机器上能跑的代码,在我这新装一遍跑不了,可能就是有些库更新后不兼容当前使用的场景,具体原因如下:

  1. 和别的库冲突
  2. 调用api变化
  3. 和当前开发环境不兼容

产生原因是package.json里写库的版本很多时候是~1.0这样的写法,意思是只要大版本一样,后面小版本会用最新的,除非是1.0这样的写法,才是指定一个版本

在项目中没有package-lock.json时的解决方案:

  1. 执行安装一次npm install,它就会自动生成
  2. 如果你用npm,同事也一定要用npm,如果对方用yarn(yarn对应的是yarn.lock),就不起作用,这种情况就只能写死package.json容易出问题的库的版本

猜你喜欢

转载自blog.csdn.net/weixin_40599109/article/details/108468314