如何使用 composer 管理 Drupal 8/9 的核心和模块?
发布时间 - 2025-11-24 00:00:00 点击率:次使用 Composer 管理 Drupal 项目可精确控制依赖并确保环境一致,推荐通过 composer create-project drupal/recommended-project 初始化;安装模块用 composer require drupal/MODULE_NAME,Composer 会自动处理依赖;更新模块运行 composer update drupal/MODULE_NAME 或整体更新 composer update,并执行 drush updb 升级数据库;核心更新应使用 composer update drupal/core-recommended drupal/core-dev-recommended --with-dependencies 以保持依赖稳定;可通过配置 repository 添加私有源,自定义模块放 web/modules/custom 但不推荐;移除模块需先 drush pmu 再 composer remove;仅提交 composer.json 和 composer.lock 到版本控制,实现可复现部署。
使用 Composer 管理 Drupal 8/9 的核心和模块是现代 Drupal 开发的标准做法。它能帮助你精确控制依赖、避免手动下载模块,并确保环境一致性。
初始化项目并安装 Drupal 核心
如果你从零开始搭建 Drupal 项目,推荐使用官方的项目模板:
composer create-project drupal/recommended-project my_drupal_site这会创建一个名为 my_drupal_site 的目录,包含 Drupal 推荐的文件结构,其中核心代码位于 web 目录下,符合安全最佳实践。
添加和更新模块
使用 composer require 命令安装 contrib 模块(来自 drupal.org):
- composer require drupal/views_bootstrap
- composer require drupal/pathauto
Composer 会自动解析依赖,比如 pathauto 需要 token 模块,它也会一并安装。
升级模块时运行:
- composer update drupal/pathauto
- 或整体更新:composer update
建议在更新后运行数据库更新:drush updb
管理 Drupal 核心更新
Drupal 8/9 使用 drupal/core-recommended 包,它锁定核心组件的版本以保证安全性和稳定性。
要更新核心:
- 查看可用更新:composer outdated "drupal/*"
- 执行更新:composer update drupal/core-recommended drupal/core-dev-recommended --with-dependencies
注意:不要单独更新 drupal/core,应使用 recommended 包来保持依赖一致。
处理自定义和特殊需求
某些模块可能不在 Packagist 上,可配置 repository:
composer config repositories.drupal composer https://packages.drupal.org/8若需添加非 Composer 管理的模块(如私有模块),可放入 web/modules/custom 目录,但不推荐长期使用。
移除模
块时,先禁用并卸载(drush pmu MODULE_NAME),再执行:
- composer remove drupal/MODULE_NAME
基本上就这些。坚持用 Composer 管理所有外部代码,配合 Git 忽略 vendor 和核心文件,只提交 composer.json 和 composer.lock,就能实现可复现的部署流程。
# js
# bootstrap
# git
# json
# composer
# require
# Token
# 数据库
# https
# 自定义
# 但不
# 移除
# 并安装
# 如果你
# 也会
# 就能
# 推荐使用
# 可通过
# 它能
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
再谈Python中的字符串与字符编码(推荐)
bootstrap日历插件datetimepicker使用方法
Android中AutoCompleteTextView自动提示
php json中文编码为null的解决办法
,网页ppt怎么弄成自己的ppt?
网站制作免费,什么网站能看正片电影?
WordPress 子目录安装中正确处理脚本路径的完整指南
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
动图在线制作网站有哪些,滑动动图图集怎么做?
详解Huffman编码算法之Java实现
如何挑选最适合建站的高性能VPS主机?
如何确保西部建站助手FTP传输的安全性?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何打造高效商业网站?建站目的决定转化率
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
香港服务器WordPress建站指南:SEO优化与高效部署策略
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
奇安信“盘古石”团队突破 iOS 26.1 提权
如何选择PHP开源工具快速搭建网站?
javascript基于原型链的继承及call和apply函数用法分析
如何在香港免费服务器上快速搭建网站?
Python函数文档自动校验_规范解析【教程】
JavaScript如何实现类型判断_typeof和instanceof有什么区别
微信小程序 canvas开发实例及注意事项
Java类加载基本过程详细介绍
手机软键盘弹出时影响布局的解决方法
香港服务器部署网站为何提示未备案?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何快速生成橙子建站落地页链接?
如何用VPS主机快速搭建个人网站?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Laravel如何自定义分页视图?(Pagination示例)
如何在局域网内绑定自建网站域名?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Python文本处理实践_日志清洗解析【指导】
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
lovemo网页版地址 lovemo官网手机登录
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Android仿QQ列表左滑删除操作
如何快速搭建虚拟主机网站?新手必看指南
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】

