You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在全新Drupal 10安装环境中安装带补丁的模块?

Drupal 10下用Composer安装带补丁模块的正确操作方案

一、先解决模块版本兼容性问题

你的错误核心是block_content_permissions现有发布版本仅支持Drupal 8/9,Drupal 10需要安装2.x及以上版本,执行以下命令安装兼容版本:

composer require drupal/block_content_permissions:^2.0

对于其他模块(比如superfish),先确认目标版本是否支持Drupal 10:

  • 如果官方稳定版不支持,优先选择标注兼容D10的开发分支(比如1.x-dev),或确认补丁是用于适配D10的。

二、用Composer补丁插件管理补丁(核心方案)

要让模块受Composer管控且自动应用补丁,必须使用Drupal生态标准的cweagans/composer-patches插件,步骤如下:

  1. 安装补丁插件
composer require cweagans/composer-patches --dev
  1. 配置补丁(二选一即可)

方式1:直接在composer.json中配置

在composer.json的extra字段中添加补丁信息,示例:

{
  "extra": {
    "patches": {
      "drupal/superfish": {
        "修复Drupal 10兼容问题": "https://www.drupal.org/files/issues/2022-08-01/superfish-%233.patch"
      }
    }
  }
}

方式2:用独立补丁文件管理(推荐,便于维护)

创建patches.json文件,写入补丁配置:

{
  "drupal/superfish": {
    "修复Drupal 10兼容问题": "https://www.drupal.org/files/issues/2022-08-01/superfish-%233.patch"
  }
}

然后在composer.json的extra字段中指向该文件:

{
  "extra": {
    "patches-file": "patches.json"
  }
}
  1. 安装/更新模块并应用补丁
    如果模块未安装,执行:
composer require drupal/superfish:~1.4

如果模块已安装,执行:

composer update drupal/superfish --with-all-dependencies

插件会自动下载并应用补丁,且修改会被Composer追踪。

三、纠正之前的错误操作

  • 禁止手动放入模块到modules/contrib:手动放置的模块不在Composer管控范围内,会导致版本冲突,先删除手动添加的模块目录,再用Composer重新安装。
  • 避免直接git apply修改模块文件:手动修改的文件会被Composer后续的update命令覆盖,必须通过补丁插件管理修改。
  • 不要盲目使用composer install:install仅同步composer.lock中的内容,新增补丁或模块版本后,需用composer update对应模块。

四、验证补丁状态

执行以下命令查看模块已应用的补丁:

composer show -p drupal/superfish

也可以直接查看模块目录下的文件,确认补丁是否生效。

内容的提问来源于stack exchange,提问作者Lissy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:10:31