技术

·

3 min read

·

- Views

如何方便快捷地魔改第三方库

Copied

如何方便快捷地魔改第三方库

2024-12-18更新

在pnpm9版本中推出了pnpm patch 命令,该功能类似patch-package。 ❗️ pnpm中不支持使用patch-package 所以如果是<9版本的pnpm, 建议还是写个copy脚本来进行更改node_modules中的文件。

前言

本来标题是想起“吐槽一下view-design”,想了想开源不易,免费的组件库还要啥自行车呢。这篇文章分享下,当我们使用第三方库时,如果当前功能存在问题或者不满足需求时,除了提issue外,如何能快速、安全地修改该库。

patch-package

首先肯定是安装这个包, 建议别全局安装,不然你的同事并不知道你装了这个包哈哈。

使用流程

  1. 大概就是 在安装完这个包后, 我们就可以进入node_modules目录下找到你想修改的那个包。

需要注意的是我们要改的是项目中引用的那个文件,一般是dist目录下的index.js。例如view-design就是iview.js文件。

注意,如果这个包是经过了压缩混淆的,那似乎就没有办法通过patch-package来打补丁了,建议是把这个包下载下来,自己修改源码然后再重新打包,再引用dist文件,当然可以把dist文件放到公司CDN上。

  1. 修改完代码以后执行npx patch-package xxx, 其中xxx就是修改了代码的包名。 此时会生成一个patch文件,

大概就是一个git diff生成的内容。 有了这个文件,patch-package 就能通过diff信息来对该包里的代码进行相应的增删改操作。

  1. 多人协作时需要将执行所有patch文件的操作写到postinstall或者build操作中,防止由于他人没有patch,导致打包后还是旧的未修改的第三方包

结语

现在view-design官网issue未关闭的都有800多个(加上view-design-plus100多个快接近1k了)。所以基本上view-design已经处于不维护的状态了,甚至很多mr都没人管。建议新项目还是老实用element系列吧…