如何使用 patch-package 管理被修改源码后的node_modules

84 阅读1分钟

使用场景:当我们修改了一个包的源码时,每次下载又不想重复的修改源码那么应该怎么办,可以使用patch-package包来解决这个问题,patch-package 是利用了git diff的原理。

下面使用使用 cb_table 这个包举个例子

第一步:进入你的项目根目录,在终端中执行如下命令下载包
npm install cb_table -S
npm install patch-package -D
第二步:在package.json中配置如下命令:
"postinstall": "patch-package"

image.png

第三步:此时就可以修改cb_table包源码了
第四步:修改完之后记得必须在 Git Bash Here 中(如下图位置)执行命令

image.png

执行如下命令:

npx patch-package cb_table
// 注意: cb_table是你的包名

执行完命令之后根目录下会多出一个patches的文件夹(如下图所示)

image.png

此时说明你对包的修改已经被保存了

第五步:此时删除你的node_modules文件夹,重新npm install会发现自动执行了你的"postinstall": "patch-package"命令(如下图所示),打开你的 cb_table 包,发现你的修改保留下来了。

image.png

如果发现你的修改没保留下来,请仔细检查是否按照本文顺序执行了命令,如果你的第五步没有自动执行"postinstall": "patch-package"命令,你也可以手动执行。

该方法亲测有效