使用Composer管理Drupal项目可确保依赖清晰、版本一致。通过composer create-project drupal/recommended-project初始化项目,模块安装与更新使用composer require drupal/module_name和composer update,核心升级执行composer update drupal/core-recommended --with-dependencies并运行drush updb和drush cr。自定义或私有模块可通过path或vcs类型仓库引入。所有变更记录在composer.json和composer.lock中,保障部署一致性,避免手动操作导致的维护难题。

在Drupal 8/9/10项目中,Composer是管理核心、模块、主题和第三方库的标准工具。它能确保依赖关系正确,并避免手动下载带来的版本混乱。
使用Composer初始化Drupal项目
如果你从零开始搭建项目,推荐使用官方的项目模板:
composer create-project drupal/recommended-project my_site_name_dir这会创建一个符合最佳实践的结构,其中web目录为文档根目录,所有可写内容(如files、private files)被隔离在web之外。
安装和更新模块
通过Composer添加模块,而不是手动复制到modules目录:
- 安装模块:运行 composer require drupal/views_bootstrap,它会自动下载模块并注册到drupal/core-extension中。
- 查看已安装模块:使用 drush pm:list 确认模块是否启用。
- 更新模块:运行 composer update drupal/module_name 或整体更新 composer update(建议先测试)。
所有模块都会记录在composer.json和composer.lock中,便于团队协作和部署一致性。
升级Drupal核心
核心升级应通过Composer进行,避免覆盖web目录文件:
- 检查当前核心版本:composer show drupal/core-recommended
- 更新到新版本:composer update drupal/core-recommended drupal/core-composer-scaffold --with-dependencies
- 执行数据库更新:drush updb
- 清除缓存:drush cr
注意:不要直接修改core目录内的文件,否则升级时会被覆盖。
处理自定义和非Packagist模块
某些内部或未发布到Packagist的模块可通过仓库方式引入:
"repositories": [ { "type": "path", "url": "modules/custom/*" } ]然后用 composer require vendor/custom_module:* 安装本地模块。对于Git仓库,可用vcs类型引入私有模块。
基本上就这些。只要坚持用Composer管理一切,就能保持项目清晰、可维护、易部署。手动操作只会带来后续麻烦。










