跳至主要内容

软件包修补

概述

有时,您需要对依赖项进行一些小的更改,以便解决一些小问题。建议的操作是上游提交 PR,但这可能需要一段时间才能完成审查并最终发布;在此期间该怎么办?您有两个选择

  • 您可以使用 git: 协议,该协议允许您直接从其开发存储库安装项目,前提是它已正确设置。

  • 或者,您可以使用 patch: 协议直接从您的项目对依赖项进行小的更改,同时将它们与原始代码分开。

不再需要等待合并和发布拉取请求,也不再需要分叉存储库来修复阻止您的应用程序工作的那个小问题:内置修补机制将始终让您解除自己的封锁。

制作修补程序

要创建补丁,请运行 yarn patch 命令,并向其传递一个包名称,以使 Yarn 在临时文件夹中提取请求的包。然后,你可以随时编辑补丁中的文件。

完成更改后,使用 yarn patch-commit -s,其中临时文件夹作为参数:补丁程序将在 .yarn/patches 中生成,并应用于你的项目。将其添加到 Git,然后就可以开始了。

维护补丁程序

默认情况下,yarn patch 始终会重置补丁程序。如果你希望添加新更改,请使用 --update 标志,并按照之前的相同过程操作 - 你的补丁程序将被重新生成。

限制

  • 由于它们当前是在获取时间而不是解决时间计算的,因此包依赖项已经得到解决,并且补丁程序将无法更改它们。相反,使用 packageExtensions 机制,该机制专门用于向包添加新的运行时依赖项。

  • 补丁不适合修改二进制文件。缩小文件也有问题,尽管我们可以改进该功能,通过类似 Prettier 的工具自动处理此类文件。