当前位置: 首页 > 知识库问答 >
问题:

删除`包锁。json`可以快速解决冲突

养振濂
2023-03-14

在组建的团队中,我通常会在包锁中遇到合并冲突。json而我的快速修复方法一直是删除该文件并使用npm install重新生成它。我没有认真考虑过这个修正的含义,因为它以前没有引起任何可察觉的问题。

删除文件并让npm以这种方式重新创建文件而不是手动解决冲突是否有问题?

共有3个答案

厉念
2023-03-14

我知道这是一个老问题,但对于未来的寻求者,你也可以使用npm-merge-驱动程序,尝试自动解决npm相关文件的合并问题。

只需将其安装到全局npx npm-merge-驱动安装--global。你可以在这里阅读更多关于它的npm-合并-驱动程序

编辑:只是想警告那些对使用上述包感兴趣的人,有时它会表现不稳定,难以删除。所以虽然它是一个有用的工具,但它仍然需要一些工作。

编辑:此存储库现在存档并只读。

秦宏硕
2023-03-14

是的,它可能有不良副作用,可能不经常,但例如,你可以在包装。json“moduleX”:“^1.0.0”,您以前在包锁中有“moduleX”:“1.0.0”。json

通过删除package-lock.json并运行npm安装,您可能会在不知道的情况下更新到moduleX的1.0.999版本,也许他们已经创建了一个错误或做了一个向后中断的更改(不遵循语义版本)。

无论如何,已经有了一个标准的解决方案

  1. 修复内部冲突package.json
  2. 运行:npm安装-包锁-仅

查看此链接了解更多信息:

https://docs.npmjs.com/cli/v6/configuring-npm/package-locks#resolving-锁文件冲突

赫连捷
2023-03-14

是的,它会以非常糟糕的方式影响所有的项目。

>

  • 如果你的团队没有运行npm安装后,每个git你都使用不同的依赖版本。所以它以“但它对我有用!!”结束“我不明白为什么我的代码对你不起作用”

    即使所有团队都运行npm安装,也并不意味着一切都正常。在某个时刻,您可能会发现您的项目的行为有所不同。在一个你已经多年没有改变的地方。在调试之后(可能是相当痛苦的),您会发现这是因为第三级依赖项已更新为下一个主要版本,这导致了一些突破性的更改。

    结论:永远不要删除包锁。json

    是的,对于第一级依赖项,如果我们在没有范围的情况下指定它们(如“反应”:“16.12.0”),我们每次运行npm安装都会得到相同的版本。但是我们不能对2级深的依赖(我们依赖的依赖)说同样的话,所以package-lock.json对于稳定性非常重要。

    在您的情况下,您最好采用下一种方式:

    1. 修复包中的冲突。json

    看起来很容易。纱线也是如此——它自己修复了锁文件冲突。这里唯一的要求是提前解决package.json中的所有冲突(如果有的话)。

    每文档npm将修复package-lock.json中的合并冲突。

    [2021年的Upd]重要!如果您已经使用了某个库,并且其维护者的npm/GitHub帐户被黑客攻击。并且发布了包含恶意代码的新版本。你有包锁。json完好无损。你会没事的。如果你把它扔了,你就有麻烦了。

  •  类似资料:
    • 问题内容: 通常,在建立团队的过程中,我遇到了合并冲突,而我的快速解决方案一直是删除文件并使用重新生成文件。我没有认真考虑此修复程序的含义,因为它以前没有引起任何可察觉的问题。 删除文件并以这种方式重新创建而不是手动解决冲突是否存在问题? 问题答案: 是的,它可能并且将以非常糟糕的方式影响所有项目。 如果您的团队在每次使用后都没有运行,则你们都使用不同的依赖项版本。因此,其结尾为“但对我有用!!”

    • 问题内容: 假设我们有一个包含一个类的软件包(以及其他类)。 然后,我们还有另一个包含一个类的包(显然具有不同的行为)。 现在假设我们需要com.example1中的每个类和com.example2中的Hello类 在这种情况下,哪个被叫? 还是这会产生编译错误? 出于好奇,这只是一个理论问题。 由于创建软件包是为了避免命名冲突,所以当两个软件包包含两个具有相同名称的类时会发生什么? 问题答案:

    • 本文向大家介绍pycharm 快速解决python代码冲突的问题,包括了pycharm 快速解决python代码冲突的问题的使用技巧和注意事项,需要的朋友参考一下 找到冲突的文件(项目中报红的就是冲突文件),如下 :以下是一个标准的冲突表 说明 * : <<<<<<< HEAD 到 =======里面的内容是自己分支commit的内容 =========到 >>>>>>里面的内容是远程下拉的 根据

    • 本文向大家介绍python3.8与pyinstaller冲突问题的快速解决方法,包括了python3.8与pyinstaller冲突问题的快速解决方法的使用技巧和注意事项,需要的朋友参考一下 安装pyinstaller 安装的时候 进入cmd pip install pyinstaller 发现安装报错! 解决办法: # 自主下载pyinstaller包,进行手动安装 pyinstaller 的下

    • 本文向大家介绍onclick和onblur冲突问题的快速解决方法,包括了onclick和onblur冲突问题的快速解决方法的使用技巧和注意事项,需要的朋友参考一下 新浪首页的搜索框里面有一个使用ajax的下拉框。我们需要实现一个点击下拉框里面的一项,让搜索框里面的值变成这一项,同时下拉框消失的效果,但同时在点击其他地方的时候,这个下拉框也要消失。大致如图: 我们同时使用onblur和onclick

    • 本文向大家介绍快速解决js开发下拉框中blur与click冲突,包括了快速解决js开发下拉框中blur与click冲突的使用技巧和注意事项,需要的朋友参考一下 在开发中我们会经常遇到blur和click冲突的情况。下面叙述了开发中常遇到的“下拉框”的问题,并提供了两种解决方案。 一、blur和click事件简述 blur事件:当元素失去焦点时触发blur事件;其为表单事件,blur和focus事件