在实际开发中,可能会遇到第三方依赖出现BUG,提交PR等待官方修复比较耗时,此时可以考虑直接修改项目第三方依赖包的代码来解决问题比较符合实际。
本文主要介绍 pnpm patch、pnpm patch commit 打补丁的方式来实现
具体操作
首先,我们拿到要修改的包,生成一个临时文件夹路径,在临时文件中编辑它的源代码
执行命令:
pnpm patch packageName@version
第二行提示:临时文件夹的生成目录
第三行提示:当我们修改完源码后,可以执行这个命令
进入到目标目录后,修改如下代码:
保存后,执行前面的第三行提示命令:
pnpm patch commit 临时文件夹路径
然后就可以在项目看到生成了一个 patches/simple-mind-map@0.11.0.patch
的文件,该文件包含我们修改的代码内容
同时在 package.json 中也增加了如下配置
"pnpm": {"patchedDependencies": {"simple-mind-map@0.11.0": "patches/simple-mind-map@0.11.0.patch"}}
然后这就搞定了!查看 node_modules 下的依赖包的代码,我们修改的代码也加上了了
我们只需清除依赖的缓存,重新 pnpm i 就可以使用修改后的代码
后续别人拿到该项目,重新 pnpm i 也能得到修改后的代码