关于patch-package


批评、指责和抱怨是蠢材与生俱来的“才能”
理解和宽容却是对人品和自律的极大考验。
——人性的弱点

在工作中我们可能会对第三方npm包源代码进行一些定制化的修改而满足我们的项目需求。

直接修改npm包是不可行的,因为在下次安装依赖的时候,使用的还是第三方的源码。

我所了解的方法有以下:

  1. fork仓库,fork到自己仓库,修改后,install自己的仓库
  2. 直接把npm下载到项目,然后自己手动引用

今天我们就用第三种方式——patch-package打补丁

什么是patch-package?

patch-package可以让应用程序作者立即对npm依赖项进行修复,它允许你在不破坏源码的情况下修改依赖包。

我们快速创建一个测试项目

1
npx create-react-app test

接下来随便安装一个第三方包

1
npm install antd

装好依赖之后,随便写2行代码,测试下第三方包是否已经生效

1
2
import { Button } from 'antd';
<Button type="primary">Button</Button>

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

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

接下来我们安装patch-package

1
npm i patch-package

安装完毕之后,在package.js里添加指令

接着执行指令,postinstall后面跟的是修改的包名

1
npm run postinstall antd

指令执行完之后,就可以看到生成的补丁包了

右侧是包的修改历史。

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

我的微信公众号: 梨的前端小屋


文章作者: 梨啊梨
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 梨啊梨 !
  目录