如何使用 Composer 管理 Drupal 8/9/10 项目的模块和核心?

composer 管理 Drupal 8/9/10 是标准实践,需基于 drupal/recommended-project 初始化,模块装入 web/modules/contrib/,核心升级通过 composer require drupal/core-recommended,自定义代码放 web/modules/custom/ 等目录,始终依赖 composer.lock 保障一致性。

如何使用 Composer 管理 Drupal 8/9/10 项目的模块和核心?

用 Composer 管理 Drupal 8/9/10 项目是标准实践,它能统一管理核心、模块、主题和依赖库,避免手动复制文件带来的版本混乱和安全风险。关键不是“能不能装模块”,而是“怎么装得干净、可复现、易升级”。

初始化一个标准的 Drupal Composer 项目

不建议从零手写 composer.json。直接用官方推荐的 drupal/recommended-project 模板:

  • 运行 composer create-project drupal/recommended-project my-site
  • 这会生成带正确目录结构(web/ 为 DocRoot)、预设脚本、合理 autoload 配置的项目
  • docroot/web/ 是 Drupal 核心所在,modules/contrib/themes/contrib/ 等由 Composer 自动管理,不再放根目录下

安装和更新贡献模块(Contrib Modules)

所有模块必须通过 Composer 安装到 web/modules/contrib/,不能手动丢进去。

  • 装新模块:例如安装 Pathauto,运行 composer require drupal/pathauto
  • 指定版本:如 composer require drupal/views:^8.9(适配 Drupal 9)或 composer require drupal/Token:1.0
  • 更新单个模块:composer update drupal/devel
  • 更新全部(谨慎!):composer update —— 建议加 --with-all-dependencies 保持依赖一致

升级 Drupal 核心(8 → 9 → 10)

核心升级本质是升级 drupal/core 及其兼容组件,不是覆盖文件。

如何使用 Composer 管理 Drupal 8/9/10 项目的模块和核心?

面多多

面试鸭推出的AI面试训练平台

如何使用 Composer 管理 Drupal 8/9/10 项目的模块和核心? 219

查看详情 如何使用 Composer 管理 Drupal 8/9/10 项目的模块和核心?

  • 先确认目标版本支持的 php 和依赖要求(如 Drupal 10 要 PHP 8.1+)
  • 运行 composer require drupal/core-recommended:^10 --update-with-dependencies(以升到 D10 为例)
  • Composer 会自动处理 drupal/coredrupal/core-composer-scaffolddrupal/core-project-message 等关联包
  • 升级后务必运行 drush updbdrush cr,并检查 Drupal 官方升级指南 中的清理项(如废弃模块、配置变更)

处理自定义代码与本地开发

自己的模块、主题、配置不要放进 contrib/ 目录,也不应由 Composer 管理源码。

  • 自定义模块放在 web/modules/custom/,主题放 web/themes/custom/ —— 这些目录不被 Composer 清理
  • 若需在多环境共享自定义代码,可将其打包为私有包,配置 repositories 到 composer.json
  • 开发时常用 composer install --no-interaction --prefer-dist 快速重建依赖;CI/CD 应基于 composer.lock 部署,确保一致性

基本上就这些。Composer 不是魔法,但只要坚持“所有第三方代码走 require,所有自定义代码放 custom 目录,所有操作留 lock 文件”,就能稳住 Drupal 项目的生命周期管理。

以上就是如何使用 Composer 管理 Drupal 8/9/10 项目的模块和核心?的详细内容,更多请关注php中文网其它相关文章!

上一篇
下一篇
text=ZqhQzanResources