以下是 Drupal 中常用的 **Composer 命令及其作用**的总结,涵盖项目初始化、依赖管理、更新维护等关键操作:
---
### **1. 初始化 Drupal 项目**
```bash
composer create-project drupal/recommended-project my_project
```
- **作用**:创建基于官方推荐的 Drupal 项目结构,自动配置依赖和脚手架文件(如 `web/` 目录结构)。
---
### **2. 安装模块/主题**
```bash
composer require drupal/module_name
composer require drupal/theme_name
```
- **作用**:从 Drupal.org 安装贡献模块或主题,自动解析依赖并更新 `composer.json`。
- **示例**:`composer require drupal/pathauto`
---
### **3. 更新依赖**
#### 更新所有包(慎用)
```bash
composer update
```
- **作用**:更新所有依赖包到最新允许版本(可能破坏兼容性,需谨慎)。
#### 仅更新特定模块
```bash
composer update drupal/module_name --with-dependencies
```
- **作用**:安全更新指定模块及其依赖,避免全局升级。
#### 更新 Drupal 核心
```bash
composer update drupal/core-* --with-dependencies
```
- **作用**:仅更新 Drupal 核心及其相关依赖包。
---
### **4. 移除模块/主题**
```bash
composer remove drupal/module_name
```
- **作用**:卸载模块并清理相关依赖(需手动删除配置和文件)。
---
### **5. 管理第三方库**
```bash
composer require vendor/library_name
```
- **作用**:安装非 Drupal 的 PHP 库(如 `symfony/http-client`)。
---
### **6. 处理项目脚手架**
```bash
composer composer drupal:scaffold
```
- **作用**:重新生成脚手架文件(如 `.htaccess`, `robots.txt`),需安装 `drupal/core-composer-scaffold`。
---
### **7. 清理自动加载**
```bash
composer dump-autoload -o
```
- **作用**:优化类自动加载机制,提升性能(生产环境推荐)。
---
### **8. 配置仓库源**
```bash
composer config repositories.drupal composer https://packages.drupal.org/8
```
- **作用**:添加 Drupal 官方包仓库,确保能正确下载模块/主题。
---
### **9. 忽略插件更新**
```bash
composer config --no-plugins allow-plugins true
```
- **作用**:临时绕过插件兼容性检查(慎用,需明确风险)。
---
### **10. 查看项目信息**
```bash
composer show drupal/core
```
- **作用**:显示 Drupal 核心的当前版本和依赖信息。
---
### **11. 自定义脚本扩展**
在 `composer.json` 中添加脚本:
```json
"scripts": {
"post-update-cmd": "DrupalProject\\composer\\ScriptHandler::postUpdate"
}
```
- **作用**:在 `composer update` 后自动执行清理或配置任务。
---
### **常见场景示例**
1. **安装 Contributed 模块**
```bash
composer require drupal/token drupal/admin_toolbar
```
2. **升级 Drupal 核心**
```bash
composer update drupal/core-* --with-dependencies
```
3. **修复依赖冲突**
```bash
composer why-not drupal/some_module
```
---
### **注意事项**
- 始终备份 `composer.json` 和 `composer.lock` 文件。
- 避免手动修改 `vendor/` 目录内容,所有修改应通过 Composer 管理。
- 使用 `composer validate` 检查配置文件语法。
通过以上命令,您可以高效管理 Drupal 项目的依赖关系和版本升级流程。
评论