背景首先,问题是这样出现的。在项目中使用pdfvuer第三方插件时,需要显示戳成功的pdf。这时候发现文章可以阅读了,但是公司的签名无法显示。这个时候,我终于找到了解决办法!!但是显示签名的修改代码在依赖包node_modules的路径下。毕竟每次npminstall都需要手动修改node_modules下的文件。一瞬间,我开始觉得难受,难受,但还是得想办法解决。一开始有两种解决方案:fork别人的代码到自己的仓库,修改后从自己的仓库安装这个插件。将别人的代码下载到本地,放到src目录下,修改后手动导入。这样做也有很多不便之处。比如单独封装组件,既麻烦又费时,还会使项目显得臃肿。然而,无论以上哪种方法都过于复杂,我只是在某个文件中更改了一两行代码,却不得不将整个项目复制过来,如此臃肿。到最后可能忘记自己修改的地方了,更新起来也很麻烦。每次都需要手动更新代码,不能和插件同步更新。在这种情况下,我转身开始了我的求知之旅。..然后找了个高大上的方案,用patch-package修改node_modules中的依赖包。解决方案安装patch-packagenpminstallpatch-package--save-dev修改项目根目录下的package.json文件package.json文件中的scripts中添加"postinstall":"patch-package",手动修改node_modulesdependencies包中的源代码手动执行命令创建npxpatch-packagepackage-name补丁文件npxpatch-packagepackage-name其中package-name是指需要修改的依赖包名称。执行该命令后,会在项目根目录下自动创建一个patches文件夹,该文件夹下会出现package-name+version.patch的补丁文件。如图:举个例子:我想修改pdfjs-dist下的文件,所以我执行的命令是:npxpatch-packagepdfjs-dist来测试补丁包是否有效。手动删除项目中的node_modules文件(强行删除node_modules文件夹:rimrafnode_modules),重新执行npminstall命令安装node_modules依赖包。安装成功后,查看你之前修改的node_modules依赖包中的文件,查看你修改的代码是否还存在。如果之前修改的代码仍然存在,说明补丁文件已经生效。如果你之前修改的代码不存在,说明补丁文件不可用。生效。
