使用场景:当我们修改了一个包的源码时,每次下载又不想重复的修改源码那么应该怎么办,可以使用patch-package包来解决这个问题,patch-package 是利用了git diff的原理。
下面使用使用 cb_table 这个包举个例子
第一步:进入你的项目根目录,在终端中执行如下命令下载包
npm install cb_table -S
npm install patch-package -D
第二步:在package.json中配置如下命令:
"postinstall": "patch-package"
第三步:此时就可以修改cb_table包源码了
第四步:修改完之后记得必须在 Git Bash Here 中(如下图位置)执行命令
执行如下命令:
npx patch-package cb_table
// 注意: cb_table是你的包名
执行完命令之后根目录下会多出一个patches的文件夹(如下图所示)
此时说明你对包的修改已经被保存了
第五步:此时删除你的node_modules文件夹,重新npm install会发现自动执行了你的"postinstall": "patch-package"命令(如下图所示),打开你的 cb_table 包,发现你的修改保留下来了。
如果发现你的修改没保留下来,请仔细检查是否按照本文顺序执行了命令,如果你的第五步没有自动执行"postinstall": "patch-package"命令,你也可以手动执行。
该方法亲测有效