Composer 安装带补丁包需借助 composer-patches 插件,在 extra.patches 中定义 Unix 换行、路径匹配的补丁文件,配合 dump-autoload 清缓存并验证 vendor 文件修改,避免因版本不兼容、路径错误或补丁被覆盖导致失效。
Composer 安装带补丁的包,本质是打补丁,不是改包源
直接用 composer require 装不了「已打补丁」的包——Composer 本身不支持在安装时自动应用补丁。真正可行的路径是:先装原包,再用插件在本地打补丁。关键不在「怎么装」,而在「谁来打、何时打、补丁放哪、怎么验证」。
必须用 composer-patches 插件,且版本要对得上 Composer
composer-patches 是事实标准,但它的兼容性很敏感:
- Composer 2.x 用户必须用
v1.7.2+(推荐^1.7),旧版如v1.6在 Composer 2 下会静默跳过补丁 - 补丁定义必须写在
extra.patches下,不是scripts或自定义配置项 - 插件启用后,
composer install和composer update都会触发补丁应用(除非加--no-plugins)
补丁文件位置和格式稍有偏差就失败
常见报错如 Patch could not be applied 或 Cannot apply patch,90% 出在路径或格式上: