用途:面向 Composer 管理的 Drupal 贡献模块(contrib)工作,包括更新模块、添加或调试补丁、解除版本约束、为 Drupal 11 升级做准备,以及向上游提交修复。
主要能力:
- 模块更新:composer require drupal/module_name --with-all-dependencies,可指定版本或一次更新多个模块;更新后运行 drush updb -y 并访问使用该模块的页面检查致命错误。
- 主版本升级:检查核心兼容性、搜索 issue queue、必要时使用 mglaman/composer-drupal-lenient 放宽版本要求、通过 composer.json 应用补丁、运行 upgrade_status 检查弃用。
- 补丁管理:使用 cweagans/composer-patches 2.x(默认 git apply)。关键点:v2 在 composer install/update/reinstall/patches-repatch 时从 patches.lock.json 应用补丁,不会重读 composer.json 的 extra.patches;修改 extra.patches 后必须运行 composer patches-relock 并提交 patches.lock.json,否则补丁在干净安装时静默失效。重新应用补丁用 composer reinstall drupal/module_name 或 composer patches-repatch。
- 补丁验证:建议项目自带校验脚本,检查 composer.json 中每个本地补丁是否存在于 patches.lock.json,并核对已提交的 contrib 文件是否含补丁行;CI 中应在 composer install 之前运行。每个补丁应配行为测试(负例与正例)。
- 生产部署:对从 git 部署的主机,用 composer install --no-dev -o 构建 vendor 并整体提交 vendor/autoload.php、vendor/composer/ 与包目录,避免部分提交导致自动加载致命错误。
适用场景:Drupal 站点维护、模块升级、补丁调试、D11 迁移准备、贡献模块开发。
限制:资料未提供该技能的具体安装命令、运行环境要求、收费信息与效果保证;部分细节需查阅其 references/ 目录下的文档。