源码补丁神器—patch-package

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

在vue项目中使用vue-pdf插件时,电子签章无法显示,原因是pdf.js的bug。可以通过patch-package工具修复依赖包源码,生成补丁文件,确保团队成员在安装依赖时自动应用补丁。这种方法节省空间,便于审查,适合临时修复。

🎯

关键要点

  • 在vue项目中使用vue-pdf插件时,电子签章无法显示,原因是pdf.js的bug。
  • 电子签章功能的需求增加,但现有代码无法显示签章,且已在生产环境运行。
  • 问题定位为pdf.js的官方bug,需修改node_modules中的依赖包代码。
  • 多种解决方案包括提issue、提pr、直接引用、发布私库、修改引用等,但都有各自的弊端。
  • patch-package工具可以优雅地修复node_modules的源码,保留npm依赖项。
  • 使用patch-package的步骤包括安装、修改依赖包、生成补丁和添加自动执行命令。
  • 补丁文件是git diff记录,能有效记录修改。
  • 自测补丁是否生效的方法是删除node_modules并重新安装依赖包。
  • patch-package的好处包括版本预检、节省空间和可审查性。
  • 直接修改node_modules下的代码不推荐,长期需彻底修复第三方包缺陷。

延伸问答

如何解决vue项目中vue-pdf插件的电子签章无法显示的问题?

可以使用patch-package工具修复pdf.js的bug,生成补丁文件,确保团队成员在安装依赖时自动应用补丁。

patch-package工具的主要功能是什么?

patch-package工具可以优雅地修复node_modules的源码,保留npm依赖项,并生成补丁文件。

使用patch-package的步骤是什么?

步骤包括安装patch-package、修改依赖包、生成补丁和添加自动执行命令。

补丁文件是什么?

补丁文件是一些git diff记录,描述了当前node_modules下的源码与原始源码之间的差异。

如何自测补丁是否生效?

可以手动删除node_modules并重新执行npm install,检查修改的代码是否仍然存在以确认补丁生效。

直接修改node_modules下的代码有什么风险?

直接修改node_modules下的代码不推荐,可能导致项目臃肿和更新麻烦,长期需彻底修复第三方包缺陷。

➡️

继续阅读