背景
在做项目中的富文本quill功能时,因为一些定制的内容需要修改到node_modules中的源码,思考修改方案有三种:
- fork别人的代码到自己仓库,修改后,从自己仓库安装这个插件。
- 下载别人代码到本地,放在src目录,修改后手动引入。这样做也有很多不便,比如自己单独封装组件既繁琐又耗时,而且还会造成项目看起来比较臃肿。
- 使用patch-package
因为前两种的方式都比较的复杂,并且会导致项目比较臃肿,更加容易忘记自己修改了源码的那个部分,出了问题应该如果恢复的问题,而且更新麻烦,我们每次都需要手动去更新代码,无法与插件同步更新,所以最后选择使用patch-package
使用patch-package
1.通过命令安装 patch-package
npm install patch-package --save-dev
2.修改项目根目录下的 package.json 文件,在 package.json 文件中的 scripts 中加入 “postinstall”: “patch-package”
3.手动修改 node_modules 依赖包中的源码
4.手动执行命令创建 npx patch-package package-name
其中package-name是指要进行修改的依赖包名称。执行该命令后会在项目根目录中自动创建一个 patches 文件夹,该文件夹中就会出现一个 package-name+version.patch 的补丁文件,如quill+1.3.7.patch
5.测试是否生效
删除node_modules然后重新install,查看效果即可