【npm】package-lock.json冲突及问题排查思路!

1,270 阅读1分钟

前言

今天合并同事们的代码的时候,其中一个同事的代码合并到我本地的时候出现了package.lock.json冲突的问题,在这记录一下排查问题的过程。

问题出现的现象

我们一共是四个前端同学开发,我是项目的Owner,合并过来代码之后,发现package.lock.json有冲突,这个冲突确实好久没见了,基本上保持本地依赖同步,一般不会出现这个问题,合并过来之后的改动如下图:

image.png

没错,多了一个"package"的key,因为我们几个同事的lock都是在dependencies里的。

这个同事吧,比较喜欢用webstorm,所以我刚开始总觉得是不是webstorm搞得👻,因为这个字段确实像他们公司产品的风格,试了之后发现不是。

翻了翻这位同事之前的提交,确实也没有安装过别的新的依赖。

询问他有无使用yarn or cnpm执行安装,答案是:无。

询问了他本地的npm version 为:8.5.3,我本地为:6.14.4,严重怀疑是npm version的👻。

经测试,果然:

以下为8.5.3执行npm i之后的package.lock.json

{
    "name": "a",
    "version": "0.0.1",
    "lockfileVersion": 2.
    "requires": true,
    "package": {
       "": {
           "name": "a",
           "version": "0.0.1",
           "dependencies": {
               ...
           }
       } 
    },
    "dependencies": {
        ...
    }
}

多了这么一个package的👻东西,目前还没有了解这个package的作用,等忙完这阵儿研究一下。

得亏提前解决,没有马虎过掉,要不然以后每次合并他的代码都来个冲突。

Fighting!