使用 patch-package 进行自定义补丁

使用 patch-package 进行自定义补丁

Created
2022-01-10
Tags
博客
置顶
Last Modify
2022-01-13 / 07:51 AM
当我们使用其他人写的库,发现库有问题。虽然提了 PR,但基于或这或那的问题,你的 PR 可能没那么快能合并,或者你的 PR 不被认同。
这个时候,咋整呢?
常见方案:
  • 改代码,自己打个包
  • 使用 patch-package 打补丁
经过尝试,用后者更加方便。

安装

用我们的博客举例,代码在这篇文章中能找到。 如何用Notion搭建自己的博客如何用Notion搭建自己的博客
先打开 package.json
"scripts": {
+  "postinstall": "patch-package"
 }
然后,用 yarn 安装的话:
yarn add patch-package postinstall-postinstall

使用方法

我们以 medium-zoom 为例,这个库是一个图片预览库,但我希望用它来实现一个图片放大的功能。
先上 Github 找到它:
为了方便,我们可以 fork 一个,然后自己拉到本地进行修改,修改完成后打包。
yarn build
打包完之后,把打包生成的结果放到我们的博客系统的 node_modules 下:
awesome-nextjs-notion-blog/node_modules/medium-zoom
然后在项目根目录用
yarn patch-package medium-zoom
来生成 patch 补丁,成功的话,我们可以看到项目根目录下有个 patches 的文件夹
其中是打包前后 build 的文件的 diff

后续维护

前面提到了,我们先 fork 了代码,这样有什么好处呢?
  • 我们可以把更改保存到 Github 上,方便后续进行二次修改
  • 后续原仓库有了更新,我们也可以在这个 forck 的仓库上拉取更新,解决冲突后再次使用
 
你觉得这篇文章怎么样?
YYDS
比心
加油
菜狗
views

Loading Comments...