批评、指责和抱怨是蠢材与生俱来的“才能”
理解和宽容却是对人品和自律的极大考验。
——人性的弱点
在工作中我们可能会对第三方npm包源代码进行一些定制化的修改而满足我们的项目需求。
直接修改npm包是不可行的,因为在下次安装依赖的时候,使用的还是第三方的源码。
我所了解的方法有以下:
- fork仓库,fork到自己仓库,修改后,install自己的仓库
- 直接把npm下载到项目,然后自己手动引用
今天我们就用第三种方式——patch-package打补丁
什么是patch-package?
patch-package可以让应用程序作者立即对npm依赖项进行修复,它允许你在不破坏源码的情况下修改依赖包。
我们快速创建一个测试项目
1 | npx create-react-app test |
接下来随便安装一个第三方包
1 | npm install antd |
装好依赖之后,随便写2行代码,测试下第三方包是否已经生效
1 | import { Button } from 'antd'; |

然后我们在它的源码里随便加一行代码

在控制台就能看到打印了456

接下来我们安装patch-package
1 | npm i patch-package |
安装完毕之后,在package.js里添加指令

接着执行指令,postinstall后面跟的是修改的包名
1 | npm run postinstall antd |
指令执行完之后,就可以看到生成的补丁包了

右侧是包的修改历史。
ok了,现在的话,哪怕当我们重新install,修改的代码依然会存在。