使用patch-package修改node_modules

807 阅读1分钟

背景

在做项目中的富文本quill功能时,因为一些定制的内容需要修改到node_modules中的源码,思考修改方案有三种:

  1. fork别人的代码到自己仓库,修改后,从自己仓库安装这个插件。
  2. 下载别人代码到本地,放在src目录,修改后手动引入。这样做也有很多不便,比如自己单独封装组件既繁琐又耗时,而且还会造成项目看起来比较臃肿。
  3. 使用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,查看效果即可