使用 composer 管理 Drupal 项目应基于 drupal/recommended-project 模板初始化,通过 composer require 安装模块,用 composer update drupal/core-recommended 和 core-composer-scaffold 升级核心,保持依赖清晰、结构规范,提升项目稳定性与协作效率。

使用 Composer 管理 Drupal 项目是现代开发的标准做法。它能帮助你精确控制核心版本、模块、库的依赖关系,避免手动下载带来的混乱。下面是如何用 Composer 正确管理 Drupal 核心和模块的方法。
初始化一个基于 Composer 的 Drupal 项目
不要从 drupal.org 下载完整包开始。推荐使用官方推荐的项目模板:
composer create-project drupal/recommended-project my_drupal_site
这会创建一个名为 my_drupal_site 的新项目,结构清晰,符合最佳实践:
- web/ 目录作为网站根目录
- 核心、模块、主题、库通过 Composer 安装到对应位置
- 自动包含合理的 composer.json 配置
安装和更新模块
所有 contributed 模块应通过 Composer 安装,而不是手动放入 modules 目录。
composer require drupal.views_inclusive
这条命令会:
- 查找 drupal/views_inclusive 在 Packagist 上的信息
- 解析兼容当前 Drupal 核心的版本
- 下载模块到 web/modules/contrib/views_inclusive
- 更新 composer.lock 记录确切版本
更新所有可安全更新的依赖:
composer update
只更新某个模块:
composer update drupal/views_inclusive
管理 Drupal 核心更新
drupal/recommended-project 已经锁定核心更新方式,确保文件结构不受破坏。
要升级核心版本:
composer update drupal/core-recommended drupal/core-composer-scaffold –with-dependencies
说明:
- drupal/core-recommended 包含核心及其必要依赖
- drupal/core-composer-scaffold 管理如 index.php、.htaccess 等根文件
- 使用 –with-dependencies 确保关联包同步更新
不要运行 composer update drupal/core* 而不指定范围,容易引发冲突。
自定义配置与最佳实践
保持项目整洁和可维护,建议:
- 把自定义模块放在 web/modules/custom,不在 composer.json 中声明
- 使用 composer install 部署生产环境(基于 composer.lock)
- 提交 composer.json 和 composer.lock 到版本控制
- 排除 vendor/ 和 web/sites/default/files 等动态内容
- 定期运行 composer outdated 查看可更新的包
基本上就这些。用 Composer 管理 Drupal 一开始需要适应,但长期来看能极大提升项目的稳定性和协作效率。关键是坚持不手动添加模块或修改 vendor 内容。


