软件包修补
概述
有时,您需要对依赖项进行一些小的更改,以便解决一些小问题。建议的操作是上游提交 PR,但这可能需要一段时间才能完成审查并最终发布;在此期间该怎么办?您有两个选择
-
您可以使用
git:
协议,该协议允许您直接从其开发存储库安装项目,前提是它已正确设置。 -
或者,您可以使用
patch:
协议直接从您的项目对依赖项进行小的更改,同时将它们与原始代码分开。
不再需要等待合并和发布拉取请求,也不再需要分叉存储库来修复阻止您的应用程序工作的那个小问题:内置修补机制将始终让您解除自己的封锁。
制作修补程序
要创建补丁,请运行 yarn patch
命令,并向其传递一个包名称,以使 Yarn 在临时文件夹中提取请求的包。然后,你可以随时编辑补丁中的文件。
完成更改后,使用 yarn patch-commit -s
,其中临时文件夹作为参数:补丁程序将在 .yarn/patches
中生成,并应用于你的项目。将其添加到 Git,然后就可以开始了。
维护补丁程序
默认情况下,yarn patch
始终会重置补丁程序。如果你希望添加新更改,请使用 --update
标志,并按照之前的相同过程操作 - 你的补丁程序将被重新生成。
限制
-
由于它们当前是在获取时间而不是解决时间计算的,因此包依赖项已经得到解决,并且补丁程序将无法更改它们。相反,使用
packageExtensions
机制,该机制专门用于向包添加新的运行时依赖项。 -
补丁不适合修改二进制文件。缩小文件也有问题,尽管我们可以改进该功能,通过类似 Prettier 的工具自动处理此类文件。