记录一次切换包管理器引发的血案
我们现在的记录项目统一用 yarn 进行包管理,之前有一个旧项目之前使用的次切是 npm 进行管理。于是换包我决定切换一下。
我具体的管理做法简单粗暴,直接 yarn install。器引
问题结果我发现之前还好好的血案项目,突然就出现各种问题,记录其中一个问题是次切 ANTD 的图标重复渲染了,显示出来两个。换包
经过一轮搜索,管理我找到一个 ISSUE,器引看起来是血案版本发生了一些变更。

这...估计是记录我切换包管理器导致的。
分析问题我们项目依赖 antd 的次切版本是 3.2.2,另外一个库 json-schema-editor-visual 依赖于 ntd@^3.1.6。换包
在 package-lock.json 中,两个 antd 的版本合成了一个,最后只安装了 3.2.2 的版本。这是香港云服务器因为 json-schema-editor-visual 中使用了 ^3.1.6,并没有锁次版本,所以它直接跟外面的同时下载一个版本。
回顾以下基础知识,npm 的版本锁定的规则如下:
符号^:表示主版本固定的情况下,可更新最新版。例如:vuex: "^3.1.3",3.1.3及其以上的3.x.x都是满足的。符号~:表示次版本固定的情况下,可更新最新版。如:vuex: "~3.1.3",3.1.3及其以上的3.1.x都是满足的。无符号:无符号表示固定版本号,例如:vuex: "3.1.3",此时一定是安装3.1.3版本。但是在使用 yarn install 之后,发现 json-schema-editor-visual 还是安装了一个 antd@3.1.6 的版本,导致了出现版本不一致导致的免费信息发布网问题。
图示如下所示:

使用 yarn import。
该命令是 yarn 帮助迁移当前所依赖的项目的 package-lock.json,尽可能减少锁文件和现有依赖树之间的差异。
在执行这个时候,还发现了一个报错。

这个问题,我一直认为是 node 版本的问题,结果切换 node 版本一直没法解决,最后还是 Google 帮我解决了问题。从这个 issue 中我找到了答案。

最后我手动修改了 package-lock.json 中的 upath 的版本为 ^1.0.5。
执行 yarn import。终于成功了,泪目。
思考与总结虽然上面只提到了 antd 的版本不一致导致的问题,实际上还有其他的问题也是由于版本不一致导致的。所以我们在切换包管理的时候,b2b信息网尽可能的保持包版本一致。
一般可以使用官方提供的命令,比如 yarn 的 yarn import,还有 pnpm 提供的,pnpm import 来处理是最恰当的。
相关文章
以其他盘装系统教程(一步一步教你如何在其他硬盘分区上安装全新的操作系统)
摘要:随着科技的不断进步,人们对于操作系统的需求也越来越高。有时候,我们希望在一台电脑上安装多个操作系统,以便于满足不同的需求。本文将为大家详细介绍如何在其他硬盘分区上安装新的操作系统,...2025-11-05- 复制#passwdroot 1.2025-11-05
从最小的传感器到整个手术室系统,物联网(IoT)正在改变医学实践。通过远程获取医疗数据、促进药物交付和实现数字健康应用,物联网为患者及其医生提供了更大的便利和功能,有助于弥补人员短缺和患者高需求。物联2025-11-05
数字领域正在见证一场迷人的融合:物联网(IoT)和运营技术(OT)日益交织在一起,编织出互联设备和智能系统的织锦。虽然必要的IT工具可以管理标准IT设备,但OT环境的复杂性和专业性往往要求更多。输入专2025-11-05- 摘要:绝地求生PUBG)作为一款热门的电脑游戏,要想在游戏中取得好成绩,熟练掌握按键设置是非常重要的。本文将详细介绍以电脑吃鸡按键的教程,帮助玩家们提高游戏技巧,成为绝地求生大神。...2025-11-05
相信大多数嵌入式开发者都会碰到对程序进行调试或者查找BUG的情况,常见的两种方法都是仿真和通过日志进行的。有条件仿真的是更好,单是在编写嵌入式软件程序过程中,并不是所有的硬件都支持仿真或者方便仿真,这2025-11-05

最新评论