在一次使用element-plus@2.1.8过程中,无意间发现一个bug,但是在element-plus@2.2.18中修复了。但是老项目中升级element-plus太过麻烦,考虑是不是可以重写其中的bug方法,于是...
使用element-plus@2.1.8
下,复制官方一段示范代码发现Step
之间的线没有变色,效果如下:
正常效果如下:
在Github中发现有对应issues如下:
该issues已经被Closed,对应的PR如下:
此次PR中只修改了一行代码,而我要升级到element-plus@2.2.18
,对于这个项目升级element-plus
组件会导致与其他组件版本不兼容,项目无法正常运行。解决这些问题将会耗费大量时间,所以我开始另谋出路......
最开始我考虑既然element
的样式可以使用样式穿透
的方法去重写,那么源码中的方法是不是也可重写覆盖呢!带着这个想法开始全网搜索。果然,被我找到了~~~,不过不是重写方法,而是修改node_modules
源码方法。
patch-package
官方只支持 npm
和 yarn
。
yarn add patch-package -D
先修改依赖文件,然后运行patch-package
来创建patch
文件了。
yarn patch-package element-plus
此时,系统会自动创建一个文件夹,如下图所示
"scripts": {
// 新增
"postinstall": "patch-package"
}
node_modules
文件夹yarn install
如果提示如下,则表示不支持该包管理器。patch-package
官方只支持 npm
和 yarn
ERROR No package-lock.json, npm-shrinkwrap.json, or yarn.lock file. You must use either npm@>=5, yarn, or npm-shrinkwrap to manage this project's dependencies。
patch
是锁定版本号的,如果升级了版本,patch
内容将会失效。可以在package.json
锁定版本号
😊参考文章 patch-package给依赖打补丁实例详解