在同一个前端项目中安装同一依赖的多个版本

在同一个前端项目中安装同一依赖的多个版本

1. 故事背景

在开发大型前端项目的时候,常常遇到这样的矛盾:升级组件库的代价过大,而旧的组件库又不能提供相应的组件

举个例子:笔者所在的项目组最近需要在前端页面中引入ant design 5.7.0之后才提供ColorPicker组件;但是目前组件库的版本是4.20.0.

我们不可能为了引入一个组件而对整个组件库升级,这样做的风险太大,并且花费时间过长。因此就需要有一种技术能够在同一个前端项目中引入ant design的多个版本,使4.20.05.7.0共存。

可能有的小伙伴会想到从github上把相关的代码扣下来到本地,但是这样做并不是好的实践,原因在于:本地的ColorPicker无法维护

2. 解决方案

实际上,npm提供了依赖别名的选项,即:开发者可以人为的对依赖起别名。这样一来,只需要将5.7.0版本的antd起名为antd5就可以了。

具体的做法如下所示:

以别名的方式使用: yarn add antd5@npm:[email protected] -S

安装之后,在package.json中以下面的方式出现: "antd5": "npm:[email protected]"

3. 使用方式

现在,就可以从antd5中引出ColorPicker进行使用了 import {ColorPicker} from "antd5"; 以及, <ColorPicker size="small" showText />

4. 其他方式

也可以在package.json中手动输入: "antd5": "npm:[email protected]" 然后在下载依赖: yarn

5. 后续维护

如果有一天,项目计划全面升级组件库到5.7.0以上的版本,那么只需升级antd就可以了,无需对antd5做改动,这样5.7.0版本的ColorPicker仍然可以保留。

此外,还有一种需求,就是引入不同版本的同一个组件,这个时候使用别名就可以了:

tsx 复制代码
import {Button as Button5} from "antd5";
import {Button} from "antd";

如果您读完之后觉得对您有所帮助,或者您还有什么金点子,请积极在评论区和作者探讨,非常欢迎互动~

相关推荐
小嘟嚷ovo20 分钟前
h5,原生html,echarts关系网实现
前端·html·echarts
十一吖i1 小时前
Vue3项目使用ElDrawer后select方法不生效
前端
只可远观1 小时前
Flutter目录结构介绍、入口、Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件
前端·flutter
周胡杰1 小时前
组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
前端·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
敲代码的小吉米1 小时前
前端上传el-upload、原生input本地文件pdf格式(纯前端预览本地文件不走后端接口)
前端·javascript·pdf·状态模式
是千千千熠啊1 小时前
vue使用Fabric和pdfjs完成合同签章及批注
前端·vue.js
da-peng-song1 小时前
ArcGIS Desktop使用入门(二)常用工具条——数据框工具(旋转视图)
开发语言·javascript·arcgis
九月TTS2 小时前
TTS-Web-Vue系列:组件逻辑分离与模块化重构
前端·vue.js·重构
我是大头鸟2 小时前
SpringMVC 内容协商处理
前端
Humbunklung2 小时前
Visual Studio 2022 中添加“高级保存选项”及解决编码问题
前端·c++·webview·visual studio